题目内容
文件IN.DAT中存放有100条对10个候选人进行选举的记录,数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依次类推。每一位内容均为字符0或1,1表示此人被选中,0表示此人未被选中,若一张选票选中人数小于等于5个人时则被认为是无效的选票。函数ReadData()负责将IN.DAT中的内容读人数组inBuf[]中。请编制函数calculate()来统计每个人的选票数并把得票数依次存入outBuf[0]outBuf[9]中,最后写函数WriteData()把结果outBuf[]输出到文件OUT.DAT中。 注意:部分源程序已给出。 请勿改动主函数main()、读函数ReadData()和写函数WriteData()的内容。 试题程序: #include<stdio.h> #include<memory.h> #define LINE 100 #define COL 10 #define THR 5 char inBuf[LINE][COL]; int outBuf[COL]; int readData(void); void writeData(void); void calculate(void) void main() int i: for(i=0;i<10;i++)outBuf[i]=0; if(readData()) printf("IN.DAT can’t be opened"); return; calculate(); writeData(); int readData(void) FILE*fp; int i; char tt[COL+1]; if((fp=fopen("IN.DAT","r"))==NULL) return 1; for(i=0;i<LINE;i++) if(fgets(tt,COL+2,fp)==NULL) return 1; memcpy(inBuf[i],tt,COL); fclose(fp); return 0; void writeData(void) FILE*fp; int i; fp=fopen("OUT.DAT","w"); for(i=0;i<10;i++) fprintf(fp,"%d",outBuf[i]); printf("the amounts of number%d’s votes%d",i+1,outBuf[i]); fclose(fp);)
查看答案
搜索结果不匹配?点我反馈