请问这个程序有什么问题啊 实在检查不出来==
题目是这样的读取来自数据文件的矩阵
计算对角线的元素之和
输入
读取可执行文件同目录下的data.in文件获得输入矩阵。该矩阵为一个4*4的
标准输出
若计算成功,则将结果发送到标准输出。输出结果后必须输出换行以表示结束。
错误输出
错误提示只能输出错误输出,可自行设计文本内容。错误提示的实现是可选的。
返回值
程序返回一个整数,其意义如下表所示:
返回值 含义
0 计算成功,结果已经发送到标准输出
1 无法打开data.in文件
2 data.in文件为空
3 无效参数
程序代码:#include<stdio.h>
#define CORRECT 0
#define FILE_OPEN_ERROR 1
#define FILE_EMPTY 2
#define INPUT_ERROR 3
#define N 100
//Main founction
int main()
{
int i;
int j;
int t;
int sum = 0;
int a[4][4];
FILE *fp;
fp = fopen("data.in","r");
//Deal with errors
if(fp == NULL)
{
fprintf(stderr,"Can't open file!\n");
fclose(fp);
return FILE_OPEN_ERROR;
}
for(i = 0;i < 4;i++)
{
for(j = 0;j<4;j++)
{
t = fscanf(fp, "%d",&a[i][j]);
if(t!=1)
{
fprintf(stderr,"File Empty!\n");
fclose(fp);
return FILE_EMPTY;
}
if(a[i][j]<0 ||a[i][j]>100)
{
fprintf(stderr,"Input Error!\n");
fclose(fp);
return INPUT_ERROR;
}
}
}
//Print Matrix
for(i = 0;i<4;i++)
{
sum = sum + a[i][i];
}
printf("%d\n",sum);
fclose(fp);
return 0;
}

