c语言 读文件 将数据存入数组

题目描述:从输入文件“data.in”中读入N个数到数组中,求平均值,并统计有多少个数字在平均值之上。要求C源程序命名为test.c输入文件data.in内容为N整数1整... 题目描述:从输入文件“data.in”中读入N个数到数组中,求平均值,并统计有多少个数字在平均值之上。

要求
C源程序命名为test.c
输入文件data.in内容为
N
整数1
整数2
……
整数N
注意:输入文件包含N+1行,每行一个整数,前后没有多余的空格和换行
可能存在非法输入
main返回值含义如下
0表示正常结束
1表示文件无法读取
2表示输入错误
如输入正确,在屏幕输出两行
第一行:N个整数的平均值
第二行:有多少个数字在平均值之上

如存在错误,在屏幕输出”ERROR”
注意:输出的数据后仅跟一个换行符,前后不要有多余的空格或换行

程序比较短就没写注释了 刚接触c语言
还有关于这道题有没有什么好的方法
要是能给出代码那就更好了...
程序还没写完 调试的时候编译器报错:
展开
 我来答
zhouyp605
2013-03-10 · TA获得超过112个赞
知道小有建树答主
回答量:153
采纳率:0%
帮助的人:93.6万
展开全部
#include<stdio.h>#include <stdlib.h>
#include <ctype.h>
int main()
{FILE *fp;
int i=0,j,s=0,flag=0,b[100];
float ave;
if((fp=fopen("data.in","r"))==NULL)
{return 1;}

char str[100];while(fscanf(fp,"%s",str)!=EOF)
{
if(!isdigit(atoi(str)))
{return 2;}
else
{b[i++]=atoi(str);}
}
for(j=0;j<i;j++)
{s=s+b[j];}
ave=s/i;
for(j=0;j<i;j++)
{if(b[j]>ave)
flag++;}
printf("%f\n%d\n",ave,flag);
return 0;}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7bbac528f8
2013-03-10 · TA获得超过598个赞
知道小有建树答主
回答量:1706
采纳率:50%
帮助的人:944万
展开全部
不等于!= no !==
追问
哦,突然才发现,再麻烦你,这个问题最佳的解决方法是什么,能不能给出你的代码?非常感谢!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式