2006年9月全国等级考试三级c语言上机题库(三十九)

来源:计算机等级考试    发布时间:2012-08-28    计算机等级考试视频    评论

★☆题目39(无忧id 63 选票问题)

 

现有一个10个人100行的选票数据文件IN.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推:内容均为字符0和1,1表示此人被选中,0表示此人未被选中,全选或不选均为无效的选票。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中。把结果yy输出到文件OUT.DAT中。

部分源程序存在文件prog1.c中。

请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。

#include <stdio.h>

 

char xx[100][11];

int yy[10];

int ReadDat(void);

void WriteDat(void);

 

void CountRs(void)

{ int i,j,count;

for(i=0;i<100;i++)

{ count=0;

for(j=0;j<10;j++)

if(xx[i][j]=='1') count++;

if(count==0||count==10) continue;

for(j=0;j<10;j++)

if(xx[i][j]=='1') yy[j]++;

}

}

 

 

void main()

{

int i;

 

for(i=0;i<10;i++)yy[i]=0;

if(ReadDat()){

printf("选票数据文件IN.DAT不能打开!/n/007");

return;

}

CountRs();

WriteDat();

}

 

int ReadDat(void)

{

FILE *fp;

int i;

 

if((fp=fopen("IN.DAT","r")) == NULL) return 1;

for(i=0;i<100;i++){

if(fgets(xx[i],11,fp)==NULL)return 1;

xx[i][10]='/0';

}

 

fclose(fp);

return 0;

}

 

void WriteDat(void)

{

FILE *fp;

int i;

 

fp=fopen("OUT.DAT","w");

for(i=0;i<10;i++){

fprintf(fp,"%d/n",yy[i]);

printf("第%d个人的选票数=%d/n",i+1,yy[i]);

}

fclose(fp);

}

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答