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

กลับลำดับ Array (Reverse Array) ในภาษา C

Reverse array = สลับตำแหน่ง element แรก-สุดท้าย, ที่สอง-ลำดับสองจากท้าย, ...

วิธี: ใช้ array ช่วย (Copy แล้วสลับ)

for (i = num-1, j = 0; i >= 0; i--, j++)
    array2[j] = array1[i];
// copy กลับ
for (i = 0; i < num; i++)
    array1[i] = array2[i];

โปรแกรม

#include <stdio.h>
int main() {
    int num, i, j, array1[50], array2[50];
    printf("Enter no of elements: ");
    scanf("%d", &num);
    printf("Enter array elements:\n");
    for (i = 0; i < num; i++)
        scanf("%d", &array1[i]);
    // Copy reversed
    for (i = num-1, j = 0; i >= 0; i--, j++)
        array2[j] = array1[i];
    // Copy back
    for (i = 0; i < num; i++)
        array1[i] = array2[i];
    printf("Reversed array:\n");
    for (i = 0; i < num; i++)
        printf("%d\n", array1[i]);
    return 0;
}

ผลลัพธ์

Enter no of elements: 4
Enter array elements: 20 50 60 70
Reversed array:
70
60
50
20

หมายเหตุ: สามารถ reverse in-place ได้โดย swap array1[i] กับ array1[num-1-i] จนกว่า i < num/2