已知文本数据文件number.dat中已保存有300个4位整数,请编写程序读取这些数并将其中满足指定条件的数从小到大排列在屏幕上输出。条件为:千位数上的数加个位数上的数等于百位数上的数加十位数上的数。
#include <stdio.h>
#include <stdlib.h>
void main()
{
int i,a[300],b,c,d,e;
FILE *fp;
fp=open("number.dat","r");
if(fp==NULL)
{
printf("cannot open file.\n");
}
for(i=0;i<300;i++)
{
fscanf(fp,"%d",&a[i]);
}
fclose(fp);
for(i=0;i<300;i++)
{
printf("%d ",a[i]);
}
for(i=0;i<300;i++)
{
e=a[i]/1000;
b=a[i]/100%10;
c=a[i]/10%10;
d=a[i]%10;
if(e+d==b+c)
printf("%d:%d+%d=%d+%d\n",i,e,d,b,c);
}
}
请帮我看看这个代码,好像读取文件那一步就出错了。