数据:具有N行,M列尺寸的实数数组。编写一个函数来反转第一列和最后一列的数组元素。我该怎么办?
答案 0 :(得分:1)
请记住,C按行存储矩阵,即A [N] [M]是具有N行和M列的矩阵。
#include <stdio.h>
#define N 4
#define M 4
int main() {
int i, j, temp;
int A[N][M] =
{
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 1, 2, 3},
{4, 5, 6, 7}
};
for (i = 0; i < N; i++) {
for (j = 0; j < M; j++) {
printf("%d", A[i][j]);
}
printf("\n");
}
printf("\n");
for (i = 0; i < N / 2; i++) {
temp = A[i][0];
A[i][0] = A[N - 1 - i][0];
A[N - 1 - i][0] = temp;
}
for (i = 0; i < N / 2; i++) {
temp = A[i][M - 1];
A[i][M - 1] = A[N - 1 - i][M - 1];
A[N - 1 - i][M - 1] = temp;
}
for (i = 0; i < N; i++) {
for (j = 0; j < M; j++) {
printf("%d", A[i][j]);
}
printf("\n");
}
printf("\n");
return 0;
}
测试
1234
5678
9123
4567
4237
9673
5128
1564