因为你定义的时候,a[M][N],b[N][M],一个三行四列,另一个四行三列,怎么可能不出错
供参考:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define M 3
#define N 4
int main()
{
int a[M][N], i, j, tmp;
srand((unsigned int)time(NULL));
printf("生成的数组:\n");
for (i = 0; i < M; i++) {
for (j = 0; j < N; j++) {
a[i][j] = rand() % 100 + 1;
printf("%4d", a[i][j]);
}
printf("\n");
}
for (i = 0; i < M; i++) {
for (j = 0; j < N / 2; j++) {
tmp = a[i][j];
a[i][j] = a[i][N - 1 - j];
a[i][N - 1 - j] = tmp;
}
}
printf("逆序后的数组:\n");
for (i = 0; i < M; i++){
for (j = 0; j < N; j++) {
printf("%4d", a[i][j]);
}
printf("\n");
}
return 0;
}