一个c语言上机题目
这是一个c语言上机题目,大致如下:在文件里存有4位数的整数<200个,编个函数实现
1.统计一下这些数字里面有多少个正整数,把数目存到totNum,
2.这些数右移一位后,有多少个偶数,并把符合条件的数目存到totCnt,再求一下符合条件的数的平均值,存到totPjz
源程序:
#include <stdio.h>
#include <conio.h>
#define MAXNUM 200
int xx[MAXNUM];
int totNum=0; /*文件IN.DAT中共有多少个正整数*/
int totCnt=0; /*符合条件的正整数的个数*/
double totPjz=0.0; /*平均值*/
int ReadDat(void);
void writeDat(void);
void CalValue(void)
{
}
void main()
{
int i;
clrscr();
for(i=0;i<MAXNUM;i++)xx[i]=0;
if(ReadDat()){
printf("数据文件IN.DAT不能打开!\007\n");
return;
}
CalValue();
printf("文件IN.DAT中共有正整数=%d个\n",totNum);
printf("符合条件的正整数的个数=%d个\n",totCnt);
printf("平均值=%.2f\n",totPjz);
writeDat();
}
int ReadDat(void)
{
FILE *fp;
int i=0;
if((fp=fopen("IN.DAT","r"))==NULL) return 1;
while(!feof(fp)){
fscanf(fp,"%d,",&xx[i++]);
}
fclose(fp);
return 0;
}
void writeDat(void)
{
FILE *fp;
fp=fopen("OUT.DAT","w");
fprintf(fp,"%d\n%d\n%6.2f\n",totNum,totCnt,totPjz);
fclose(fp);
}
在函数里面主要是编写
void CalValue(void)
{
}
这个函数实现,下面是我写的:
void CalValue(void)
{int i,ten;
for(i=0;i<MAXNUM;i++)
{ if(xx[i]>0)
{ totNum++;
ten=xx[i]%100/10;
if(ten%2==0) {totCnt++; totPjz=(totPjz+xx[i])/totCnt;}
}
}
}
,在win-tc里面编译显示成功,但交卷后却显示得分33,我不明白究竟是怎么回事,希望得到大家的指点!