如果是相应的行无素对调。该如何改?
/*程序定义了N*N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N]),函数的功能是:使数组第一列元素中的值与最后一列元素中的值对调、第二列元素的
值与倒数第二列中的值对调、……、其他依次类推。
注意:部分源程序给出如下。
请勿改动主函数main和其它函数中的任何去何内容,仅在函数fun的花括号中填入你编写
的若干语句。
试题程序。*/
# include <stdlib.h>
# include <stdio.h>
# include <time.h>
#define N 5
/* 本题的第一个for()循环用于控制行,而内嵌的for()用于在同一行中将列与列对调,
当i为0时a[m][i]为第m行的第一列元素,a[m][N-1-i]为第m行的最后一列的元素,正好
符合调换的要求。依次类推。*/
void fun(int a[][N])
{
int i ,m,t;
for(m=0; m<N; m++)
for(i=0; i<N/2; i++)
{
t = a[m][i];
a[m][i] = a[m][N-1-i];
a[m][N-1-i] = t;
}
}
main()
{
int a[N][N],i,j;
srand((unsigned)time(NULL));
printf("***** The array *****\n");
for(i=0; i<N; i++)
{
for(j=0; j<N; j++)
{
a[i][j] = rand()%30;
printf("%4d",a[i][j]);
}
printf("\n");
}
fun(a);
printf("***** The result *****\n");
for(i=0; i<N; i++)
{
for(j=0; j<N; j++)
printf("%4d",a[i][j]);
printf("\n");
}
return 0;
}
如题。