#include<stdio.h>#include<stdlib.h>void main(){ FILE*fp; int i,a[1000],n=0; fp=fopen("E:\\wj4.txt","r");//wj4.txt里存储一千个数 if((fp=fopen("E:\\wj4.txt","r"))==NULL) {printf("error"); } for(i=0;i<1000;i++) {fscanf("%d",a[i]); if(a[i]%2!=0) n++;} fclose(fp); printf("%d",n);}求这一千个数中奇数的个数,大神指点一下,谢谢
1 回答
lvanli
TA贡献7条经验 获得超8个赞
思路是对的,只不过有一些细节有问题:
1、fscanf是从文件作为输入。第一个参数应该是FILE*,所以应该写为fscanf(fp,"%d",&a[i]);
2、作为输入a[i]不能用在scanf里面,因为a[i]是char类型的,但是scanf要求使用char*。所以改成&a[i]
3、文件打开出错了要直接返回,只是打印后面还是会crash。
4、你强行读取了1000个字符,如果文件中没有那么多就会出问题。所以要判断fscanf的返回值是不是EOF
- 1 回答
- 0 关注
- 1228 浏览
添加回答
举报
0/150
提交
取消