改錯題
給定程序MODI1.C中函數(shù)fun的功能是:求出兩個非零正整數(shù)的最大公約數(shù),并作為函數(shù)值返回。
例如,若給num1和num2分別輸入49和21,則輸出的最大公約數(shù)為7;若給num1
和num2分別輸入27和81,則輸出的最大公約數(shù)為27。
請改正程序中的錯誤,使它能得出正確結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
給定源程序:
#include
int fun(int a,int b)
{ int r,t;
if(a t=a; b=a; a=t;
}
r=a%b;
while(r!=0)
{ a=b; b=r; r=a%b; }
return(a);
}
main()
{ int num1, num2,a;
printf("Input num1 num2: "); scanf("%d%d",&num1,&num2);
printf("num1= %d num2= %d\n\n",num1,num2);
a=fun(num1,num2);
printf("The maximun common divisor is %d\n\n",a);
}
解題思路:
第一處:交換值的次序有問題,所以應(yīng)改為:t=a;a=b;b=t;。
第二處:返回值錯誤,應(yīng)改為:return(b);。
編輯推薦:
2013年計算機等級考試備考精華資料匯總
全國計算機等級考試教材目錄(2013年版)
全國計算機等級考試考試大綱(2013年版)