高人做C++ 赏50分 在线等

来源:百度知道 编辑:UC知道 时间:2024/05/29 05:10:53
在main函数中,从文本文件test3-l.dat中读出N个整型数,
调用fun函数,分别统计其中正数的个数和负数的个数;
在main函数中输出正数的个数和负数的个数。

请改正程序中的错误,使它能得出正确结果。
注意:不得增行或删行,也不得更改程序结构

#define N 20
#include <stdlib.h>
#include <stdio.h>
void fun(int *a)
{
int i,cnt=0;

for(i=0;i<N;i++)
if(a[i]>0) cnt++;
return cnt;
}

void main( )
{
FILE *fp;
int a[],i,cnt;

if((fp=fopen("test3-1.dat","r"))==NULL)
{
printf("Cannot open the file.\n");
exit(0);
}
for(i=0;i<N;i++)
fscanf(fp,"%d",a[i]);
fclose(fp);
fun(a);
printf("positive = %d\n",N-cnt);
printf("negative = %d\n",cnt);
}

修改如下,有问题hi我

#define N 20
#include <stdlib.h>
#include <stdio.h>
int fun(int *a) //返回值类型错误
{
int i,cnt=0;

for(i=0;i<N;i++)
if(a[i]>0) cnt++;
return cnt;
}

void main( )
{
FILE *fp;
int a[N],i,cnt;//定义数组错误

if((fp=fopen("test3-1.dat","r"))==NULL)
{
printf("Cannot open the file.\n");
exit(0);
}
for(i=0;i<N;i++)
fscanf(fp,"%d",&a[i]); //读取需要用指针
fclose(fp);
cnt=fun(a);//返回值
printf("positive = %d\n",N-cnt);
printf("negative = %d\n",cnt);
}

#define N 20
#include <stdlib.h>
#include <stdio.h>
int fun(int *a)//void改为int,因该函数返回值为整型
{
int i,cnt=0;

for(i=0;i<N;i++)
if(a[i]<0) cnt++; //统计负数的个数,从main()函数可看到,故>改为<
return cnt;
}

void m