一本书里的C
文件IN.DAT中存有200个整数,函数read_dat(int inBuf)负责将这200个数读到数组inBuf[]中。请编制程序,要求:求出数组inBuf[]中最大数max及最大数的个数count和数组inBuf[]中能被3或7整除的数的算术平均值average(保留2位有效数字),结果输入到OUT.DAT中。第一个不懂的是 fscanf(fp,"%d,",&inBuf);里面”%d," 为什么d后面有逗号
第二个是执行不了,我有在桌面上建立一个IN.DAT文件啊,文件里面是这样的1,1,2,2,3,一共200个
不知怎么搞得
////////中间是我写的/////////
#include<stdlib.h>
#include<stdio.h>
#define MAX 200
void read_dat(int inBuf)
{
int i,j;
FILE * fp;
fp=fopen("IN.DAT","r");
for(i=0;i<20;i++)
{
for(j=0;j<10;j++)
{
fscanf(fp,"%d,",&inBuf);
printf("%d",inBuf);
}
printf("\n");
}
fclose(fp);
}
void main()
{
int count,inBuf,max;
float average;
FILE * fw;
int i,k;
long j;
system("CLS");
fw=fopen("OUT.DAT","w");
read_dat(inBuf);
average=0;count=0;max=0;j=0;
///////////////
max=inBuf;
for(i=1;i<200;i++)
{
if(inBuf>max)
max=inBuf;
}
for(k=0;k<200;k++)
{
if(inBuf==max)
count++;
}
int s=0;int t=0;
for(j=0;j<200;j++)
{
if(inBuf%3==0||inBuf%7==0)
{
s=s+inBuf;
t++;
}
}
average=s/t;
//////////////////
printf("\n\nmax=%d,count=%d,average=%6.2f\n",max,count,average);
fprintf(fw,"%d\n%d\n%6.2f\n",max,count,average);
fclose(fw);
}
%d后面逗号是为了读取通过逗号分隔的数字
按照您这么写,如果是用编程软件运行程序,IN.DAT得写在工程目录下,如果是直接执行exe,IN.DAT得放在exe同目录下,因为您写了相对路径。
如果IN.DAT放在桌面,这个exe也得放在桌面直接执行 {:1_1:} 强烈支持楼主ing…… 我新手
页:
[1]