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