หน้าหลัก » ภาษาซี (C) » โค้ดภาษาซี รับตัวเลข จำนวน 10 ครั้ง แล้วเรียงลำดับจากน้อยไปมาก

โค้ดภาษาซี รับตัวเลข จำนวน 10 ครั้ง แล้วเรียงลำดับจากน้อยไปมาก




ตัวอย่างโค้ดภาษาซี สำหรับการรับค่าตัวเลขจำนวน 10 ครั้ง แล้วเก็บไว้ในตัวแปร Array จากนั้นเมื่อรับค่าตัวเลขทั้งหมดแล้ว ก็จะนำมาเรียงลำดับตัวเลขจากน้อยไปมาก และเมื่อเรียงลำดับเสร็จแล้วก็จะนำค่าที่ได้ใน Array มาแสดงผล

ตัวอย่างโค้ด

/***************************************************
 * Author    : CS Developers
 * Author URI: https://www.comscidev.com
 * Facebook  : https://www.facebook.com/CSDevelopers
 ***************************************************/
 
#include<stdio.h>

int main()
{
	int arr_size = 10;
	int number[arr_size];
	int i, tmp;
	
	for(i=0; i<arr_size; i++)
	{
		printf(" Enter number %d : ", i+1);
		scanf("%d", &number[i]);
	}
	
	i = 0;
	do
	{
		if(i < arr_size-1 && number[i] > number[i+1])
		{
			tmp = number[i+1];
			number[i+1] = number[i];
			number[i] = tmp;
			i = 0;
		}
		else
		{
			i++;
		}
		
	}while(i < arr_size);

	
	printf("\n Ascending order : ");
	for(i=0; i<arr_size; i++)
	{
		printf(" %d", number[i]);	
	}
	
	return 0;	
}

อธิบายเพิ่มเติม

1. arr_size เป็นตัวแปรที่กำหนดขึ้นมาเพื่อระบุจำนวนตัวเลขที่ต้องการรับ ซึ่งในตัวอย่างกำหนดไว้ที่ 10 โดยสามารถกำหนดค่าได้ตามที่ต้องการ เช่น

 int arr_size = 15; //โปรแกรมก็จะวนรับค่าตัวเลขทั้งหมดจำนวน 15 ครั้ง

2. tmp เป็นตัวแปรที่ใช้สำหรับเก็บตัวเลขไว้ชั่วคราว เพื่อให้สามารถย้ายตำแหน่งระหว่างตัวเลขที่น้อยกว่ากับตัวเลขที่มากกว่าได้

3. เงื่อนไขการสลับตำแหน่ง จะเปรียบเทียบระหว่างตำแหน่งที่ i และ i+1(ตำแหน่งถัดไป) ถ้าตำแหน่งถัดไปน้อยกว่าตำแหน่งที่ i จะทำการสลับตำแหน่งกัน (น้อย อยู่ตำแหน่งซ้าย, มาก อยู่ตำแหน่งขวา) จากนั้นก็จะเริ่มวนลูปเพื่อเปรียบเทียบตำแหน่งใหม่ตั้งแต่ตำแหน่งที่ 0 อีกครั้ง วนไปเรื่อยๆ จนกว่าจะเรียงลำดับได้ถูกต้อง

ผลลัพธ์

โค้ดภาษาซี รับตัวเลข จำนวน 10 ครั้ง แล้วเรียงลำดับจากน้อยไปมาก