请问这个程序有什么问题啊 实在检查不出来==
题目是这样的读取来自数据文件的矩阵
计算对角线的元素之和
输入
读取可执行文件同目录下的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; }