谁帮我编个c语言程序?

来源:百度知道 编辑:UC知道 时间:2024/05/25 03:18:40
定了M乘以N的二维数组(数组元素在主函数中随机产生(<=100的整数)),其功能是:1数组中第一行已最后一行对调,第二行与倒数第二行对调,。。。。。2数组中第一列于最后一列对调,第二列与倒数第二列对调。。。。。

我就5分了。。。。。

/*先定义常量M和N,你可以随意修改*/
#define M 9
#define N 8
/*先写个过程,输出数组*/
void print_arr(int a[M][N]){
int i,j;
for (i=0;i<M;i++){
for (j=0;j<N;j++) printf("%-4d ",a[i][j]);
printf("\n");
}
}
/*下面开始无聊的主程序*/
main(){
int a[M][N];
int i,j,x;
/*下面这行完成赋值*/
for (i=0;i<M;i++) for (j=0;j<N;j++) a[i][j]=1+rand()%99;
printf("对调之前的数组:\n");print_arr(a);
/*行对调*/
for (i=0;i<M/2;i++)
for (j=0;j<N;j++)
{x=a[i][j];a[i][j]=a[M-i-1][j];a[M-i-1][j]=x;}
printf("行对调之后的数组:\n");print_arr(a);
/*列对调*/
for (i=0;i<M;i++)
for (j=0;j<N/2;j++)
{x=a[i][j];a[i][j]=a[i][N-j-1];a[i][N-j-1]=x;}
printf("列也对调之后的数组:\n");print_arr(a);
}

程序在UNIX和TC2.0上调试通过,UNIX上运行结果如下:

对调之前的数组:
9 17 16 92 65 84 43 94
76 28 77 96 76 82 51 21
43 97 91 25 39