c语言编程题(文件宏定义啥的)望高手指教啊

来源:百度知道 编辑:UC知道 时间:2024/06/08 18:06:51
定义一个N*N(N的值宏定义为5)的二维数组,编程完成以下要求:
1、 以数组元素的值为该元素行列标号之和的规律为数组自动赋初值;
2、 使数组第一列元素中的值与最后一列元素中的值对调、第二列元素的值与倒数第二列中的值对调、……、其他依次类推;
3、 按行列结构将对调后的数组元素输出到当前路径A.TXT文件中。

#include<stdio.h>
#include<stdlib.h>
#define N 4
int main(void)
{
int num[N][N],i,j;
FILE *fp;
/* Init Array */
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
*(*(num+i)+j)=i+j;
}
}
/* exchange */
for(i=0;i<N;i++)
{
for(j=0;j<N/2;j++)
{
*(*(num+i)+j)=*(*(num+i)+j)^*(*(num+i)+N-j-1);
*(*(num+i)+N-j-1)=*(*(num+i)+j)^*(*(num+i)+N-j-1);
*(*(num+i)+j)=*(*(num+i)+j)^*(*(num+i)+N-j-1);
}
}
if(!(fp=fopen("A.TXT","wb")))
{
printf("can't open this file");
exit(0);
}
/* output */
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
printf("%3d",*(*(num+i)+j)); // o