lần sau bạn nhớ bỏ code vô trong thẻ code nha, để không như trên thứ 1 là không có thụt dòng rất khó đọc, thứ 2 là nó bị lỗi như chỗ M [ i ], cái [ i ] bị hiểu lầm thành tag in nghiêng thành ra bị mất còn có M không à, câu hỏi mà đã sai thì không thể có câu trả lời đúng được đâu, bỏ vô tag code như tui vầy nè
Mã:
int n;
cout << "Nhap mang: ";
cin >> n;
int M[n];
for (int i = 0; i < n; i++)
{
M[i] = rand() % 10;
}
for (int i = 0; i < n; i++)
{
cout << "M[" << i << "]= " << M[i] << "\t\t";
}
cout << "\nMang nguoc chieu:\n";
for (int i = 0; i < n/2; i++)
{
int temp = M[i];
M[i] = M[n - i - 1];
M[n - i - 1] = temp;
}
for(int i = 0; i < n; i++)
{
cout << "M[" << i << "]=" << M[i] << "\t";
}
cái for thứ 3 chỉ đơn giản là hoán đổi phần tử ở phía đầu với phía cuối mảng thôi, M[ i ] là phần tử bên này mảng, M[n - i - 1] là phần tử ở phía đối xứng bên kia mảng, hoán vị xong sẽ được mảng ngược chiều
bạn thử làm bằng tay sẽ hiểu, chẳng hạn có mảng sau
5 9 8 7 2 4 3 6 0
Mã:
5 9 8 7 2 4 3 6 0
^ ^ ^ ^ ^ ^ ^ ^
| | | |_________| | | |
| | |___________________| | |
| |_____________________________| |
|_______________________________________|
hoán đổi 5 với 0
0 9 8 7 2 4 3 6
5
9 với 6
0
6 8 7 2 4 3
9 5
8 với 3
0 6
3 7 2 4
8 9 5
7 với 4
0 6 3
4 2
7 8 9 5
2 là phần tử ở giữa đứng 1 mình nên giữ nguyên, kết quả là bạn sẽ được mảng ngược chiều so với ban đầu