求文件里奇数的个数

#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);
}

求这一千个数中奇数的个数,大神指点一下,谢谢

渐行渐远6
浏览 1229回答 1
1回答

lvanli

思路是对的,只不过有一些细节有问题: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
打开App,查看更多内容
随时随地看视频慕课网APP