鱼C论坛

 找回密码
 立即注册
查看: 5651|回复: 4

一本书里的C

 关闭 [复制链接]
发表于 2014-9-10 21:46:29 | 显示全部楼层 |阅读模式
3鱼币
文件IN.DAT中存有200个整数,函数read_dat(int inBuf[MAX])负责将这200个数读到数组inBuf[]中。请编制程序,要求:求出数组inBuf[]中最大数max及最大数的个数count和数组inBuf[]中能被3或7整除的数的算术平均值average(保留2位有效数字),结果输入到OUT.DAT中。

第一个不懂的是 fscanf(fp,"%d,",&inBuf[i*10+j]);里面”%d,"   为什么d后面有逗号
第二个是执行不了,我有在桌面上建立一个IN.DAT文件啊,文件里面是这样的1,1,2,2,3,一共200个

不知怎么搞得
////////中间是我写的/////////


#include<stdlib.h>
#include<stdio.h>
#define MAX 200
void read_dat(int inBuf[MAX])
{
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[i*10+j]);
   printf("%d",inBuf[i*10+j]);
  }
  printf("\n");
}
fclose(fp);
}
void main()
{
int count,inBuf[MAX],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[0];
for(i=1;i<200;i++)
{
  if(inBuf[i]>max)
   max=inBuf[i];
}
for(k=0;k<200;k++)
{
  if(inBuf[k]==max)
   count++;
}
int s=0;int t=0;
for(j=0;j<200;j++)
{
  if(inBuf[j]%3==0||inBuf[j]%7==0)
  {
   s=s+inBuf[j];
   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也得放在桌面直接执行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-9-10 21:46:30 | 显示全部楼层
%d后面逗号是为了读取通过逗号分隔的数字
按照您这么写,如果是用编程软件运行程序,IN.DAT得写在工程目录下,如果是直接执行exe,IN.DAT得放在exe同目录下,因为您写了相对路径。
如果IN.DAT放在桌面,这个exe也得放在桌面直接执行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-9-10 22:01:29 | 显示全部楼层
{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-9-11 19:28:15 | 显示全部楼层
强烈支持楼主ing……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-10-1 08:48:26 | 显示全部楼层
我新手
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-21 11:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表