Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Chương trình C đảo ngược thứ tự phần tử mảng (in-place)

Giả sử chúng ta có một mảng n phần tử. Nhiệm vụ là đảo ngược thứ tự các phần tử trong chính mảng đó (không phải in ngược, mà thay đổi vị trí thực tế).

Ví dụ, nếu n = 6, arr = [9, 8, 7, 2, 4, 3], thì sau khi đảo ngược mảng sẽ thành [3, 4, 2, 7, 8, 9].

Giải thuật

  • Duyệt i từ 0 đến n/2 - 1
  • Hoán đổi arr[i] với arr[n - i - 1] sử dụng biến tạm temp
  • Sau khi đảo xong, duyệt in toàn bộ mảng

Ví dụ minh họa

#include <stdio.h>
#include <stdlib.h>

#define n 6

int main() {
    int arr[n] = {9, 8, 7, 2, 4, 3};
    int temp;
    for (int i = 0; i < n/2; i++) {
        temp = arr[i];
        arr[i] = arr[n - i - 1];
        arr[n - i - 1] = temp;
    }
    for (int i = 0; i < n; i++) {
        printf("%d,", arr[i]);
    }
    return 0;
}

Đầu vào

6, 9, 8, 7, 2, 4, 3

Đầu ra

3,4,2,7,8,9,