2013年4月20日 星期六

樂透類型


101年公務人員普通考試試題 代號:44220
類 科: 資訊處理
科 目: 程式設計概要
考試時間: 1小時30分


一、使用 C 語言,寫一個叫做 count()的函式,此函式有 2 個參數,一個是整數陣列
score,另一個是代表陣列大小的整數 size。假設 score 陣列的所有元素都有整數值,
此函式將計算陣列內有多少個不同的數值,並將其傳回。(25分)
下列解答是錯的,請找出錯誤的原因。

int score[]={12,12,3,3,5,6,7};

main(){
clrscr();
printf("%d",count(score,7));
getch();
}

int count(int ary[],int size){
int i,j,counter=size;
for(i=0;i<size;i++){
j=0;
while(ary[++j]==ary[i])
counter--;
}
return counter;
}

正解


int score[]={12,8,3,3,7,6,7,5,7,8};

main(){
clrscr();
printf("\n%d",count(score,10));
getch();
}

int count(int ary[],int size){
int i,j,counter=0;
for(i=0;i<size;i++){
for(j=0;ary[j]!=ary[i];j++)
;
if (j==i)
counter++;
}
return counter;
}

沒有留言:

張貼留言