Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

โปรแกรม C เรียงอาร์เรย์จากมากไปน้อย (Descending)

ปัญหา: เรียงลำดับอาร์เรย์ตัวเลขจากมากไปน้อย

ตรรกะเดียวกับ Ascending แต่เปลี่ยนเงื่อนไขเป็น if (num[i] < num[j]) สลับที่ถ้าหน้าน้อยกว่าหลัง

โค้ด 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 descending order is:\n");
    for (i = 0; i < n; ++i) {
        printf("%d\n", num[i]);
    }
}

ตัวอย่าง Output

enter number of elements in an array 4
Enter the elements
11 34 67 89
The numbers in descending order is:
89
67
34
11