C语言选择问题~

来源:百度知道 编辑:UC知道 时间:2024/06/13 20:38:04
现有一个10个人100行的选票数据文件IN.DAT,其数据存放的格式是每条记录的长度
均为10位,第一位表示第一个的选中情况,第二位表示第二个人的选中情况,依此类推;内
容均为字符0和1,1表示此人被选中,0表示此人未被选中,若一张选票人数大于5个人时认
为无效的选票.给定函数READDAT()的功能是把选票并把选票数据读入到字符串数组XX中
.请编制函数COUNTRS()来统计每个人的选票数并把票数依次存入YY[0]到YY[9]中,最后调
用函数WRITEDAT()把结果YY输出到OUT.DAT中.

PS:10人100行是什么意思?有劳解答一下.还有程序的意思..谢谢
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>5) continue;
for(j=0;j<10;j++)
if(xx[i][j]=='1') yy[j]++;
}}

10人100行可以这样理解:10个候选人,100个人来选,
每行十个字符(只能是字符'0'或'1'),一共有100行

void CountRs(void)
{ int i,j,count;
for(i=0;i<100;i++) //统计100行数据
{ count=0; //记录一个选举人投票数,大于5时无效
for(j=0;j<10;j++) //统计选举人的总投票数
if(xx[i][j]=='1') count++;
if(count>5) continue; //无效投票时跳出,不执行下面的语句,有效时执行
for(j=0;j<10;j++)
if(xx[i][j]=='1') yy[j]++; //yy[j]表示第j个被选举人的得票情况
}}

很简单啊,10人100行就是相当于100个人为10个人投票,程序的意思是为10个人投票,当是遇到1的时候,相对应的票数加1,一个人投的票大于五票的话,跳出循环,然后把每个人得的票数依次存入yy数组