閱讀以下說明和C函數(shù),將應(yīng)填入(n)處的字句寫在答題紙的對(duì)應(yīng)欄內(nèi)。
【說明】
某單位準(zhǔn)備進(jìn)行一次選舉,對(duì)指定的n名(n<80)候選人進(jìn)行投票。為了簡化選舉工作,事先印制了寫有這n名候選人姓名的選票,投票者只需將選中者名下的圓圈涂黑即可。規(guī)定每張選票上被涂黑的圓圈數(shù)不得超過3個(gè),也不得少于1個(gè),否則視為無效選票。投票結(jié)束后,所有選票經(jīng)計(jì)算機(jī)掃描處理,形成了描述選票狀態(tài)的文本文件。例如,
n=8時(shí)所形成的文件如下:
01011000
10010100
10011000
11111111
00000000
00111000
……
其中,每行表示一張選票的數(shù)據(jù),每列代表一位候選者的得票情況。第i行第j列為1,表示第i張選票上投了第j名候選人1票。
函數(shù)statistic()的功能是讀入選票數(shù)據(jù),并統(tǒng)計(jì)每位候選者的得票數(shù),函數(shù)返回有效選票數(shù)。
【C函數(shù)】
int statistic (FILE *fp,int candidate[ ],int n)
{ /* 從文件中讀入選票數(shù)據(jù),n為候選人數(shù)量(n<80),從有效選票中統(tǒng)計(jì)每位候選者
的得票數(shù)并存入candidate[],函數(shù)返回有效選票數(shù) */
char str[80] /* str保存讀入的一張選票數(shù)據(jù) */
int I tag=0 /* tag用于判斷每張選票是否有效 */
int q=0 /* q用于計(jì)算有效選票數(shù) */
for(i=0:i<n; i++)
candidate[i]=0;
while( (1) ){
fgets(str, 80, fp):/* 讀入一張選票數(shù)據(jù) */
for(tag=0, i=0 ; ((2)) ;i++)
if (str[i] = = ’1 ’) tag++;
if((3)){/* 若是有效選票,則進(jìn)行統(tǒng)計(jì) */
( (4) );
for(i=0;i<n;i++)
if(str[i]= =‘1’)(5) ;
}
}
return q;
} /* statistic */