ปัญหา
จัดเรียงอาร์เรย์ที่ระบุในลำดับจากมากไปน้อยหรือน้อยไปหามากตามโค้ดที่เขียน
วิธีแก้ปัญหา
อาร์เรย์คือกลุ่มของรายการข้อมูลที่เกี่ยวข้องกันซึ่งเป็นชื่อสามัญร่วมกัน ค่าเฉพาะในอาร์เรย์จะถูกระบุด้วยความช่วยเหลือของ "หมายเลขดัชนี"
การประกาศอาร์เรย์
ไวยากรณ์สำหรับการประกาศอาร์เรย์มีดังนี้ −
datatype array_name [size];
ตัวอย่างเช่น
float marks [50]
มันประกาศ 'เครื่องหมาย' เป็นอาร์เรย์ที่มีองค์ประกอบลอย 50 รายการ
int number[10]
มันประกาศ 'ตัวเลข' เป็นอาร์เรย์ที่ประกอบด้วยค่าคงที่จำนวนเต็มสูงสุด 10 ค่า
แต่ละองค์ประกอบถูกระบุโดยใช้ "ดัชนีอาร์เรย์"
การเข้าถึงองค์ประกอบอาร์เรย์ทำได้ง่ายโดยใช้ดัชนีอาร์เรย์
ตรรกะที่เราใช้ในการจัดเรียงองค์ประกอบอาร์เรย์ในลำดับจากน้อยไปมากมีดังนี้ -
for (i = 0; i < n; ++i){
for (j = i + 1; j < n; ++j){
if (num[i] > num[j]){
a = num[i];
num[i] = num[j];
num[j] = a;
}
}
} โปรแกรม
ต่อไปนี้เป็นโปรแกรม C เพื่อจัดเรียงอาร์เรย์ในลำดับจากน้อยไปมาก -
#include <stdio.h>
void main (){
int num[20];
int i, j, a, n;
printf("enter number of elements in an array\n");
scanf("%d", &n);
printf("Enter the elements\n");
for (i = 0; i < n; ++i)
scanf("%d", &num[i]);
for (i = 0; i < n; ++i){
for (j = i + 1; j < n; ++j){
if (num[i] > num[j]){
a = num[i];
num[i] = num[j];
num[j] = a;
}
}
}
printf("The numbers in ascending order is:\n");
for (i = 0; i < n; ++i){
printf("%d\n", num[i]);
}
} ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −
enter number of elements in an array 5 Enter the elements 12 23 89 11 22 The numbers in ascending order is: 11 12 22 23 89