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,