試哪裡不行阿 為何不能跑
#include
int factor(int,int);
int main(void)
{
int num1,num2; /* 要求最大公因數的兩個數 */
int a,b,c; /* 依次為除數、被除數、餘數 */
printf("請輸入兩個數字\n");
scanf("%d %d",&num1,&num2);
system("pause");
return 0;
}
int factor(long num1,long num2)
{
c = num1%num2; /* 先計算一次餘數 */
b = num2; /* 以其中一個數為被除數 */
while(c!=0) /* 計算輾轉相除的迴圈 */
{
a=b; /* 指定前一次除數為新的被除數 */
b=c; /* 指定前一次餘數為新的除數 */
c=a%b; /* 求出新的餘數 */
}
printf("%d 與 %d 的最大公因數是 %d\n",num1,num2,b);
}
2007-03-22 19:07:13 · 2 個解答 · 發問者 師 1 in 電腦與網際網路 ➔ 程式設計
你錯的部分太多了, 語法錯誤加上邏輯錯誤。factor 的部分我改了很多地方
//使用 system 必需加上 stdlib.h
#include
#include
int factor(int,int);
int main(void)
{
int num1,num2; /* 要求最大公因數的兩個數 */
printf("請輸入兩個數字\n");
scanf("%d %d",&num1,&num2);
printf("%d 與 %d 的最大公因數是 %d\n",num1,num2,factor(num1,num2));
system("pause");
return 0;
}
int factor(int num1,int num2)
{
int mod = num1 % num2 ;
if ( mod != 0 )
{
num1 = num2 ;
num2 = mod ;
return factor( num1 , num2 );
}
return num2;
}
2007-03-23 02:35:02 補充:
宣告時
int factor ( int, int);
實作時
int factor (long,long)
factor
未給傳回值
whlile
的部分是邏輯上的錯誤
printf結果
應該放在 main() 裡面
2007-03-22 22:32:31 · answer #1 · answered by 想 3 · 0⤊ 0⤋
factor 副程式的 a b c 三個變數是區域變數,必須加宣告。
2007-03-22 20:21:39 · answer #2 · answered by Big_John-tw 7 · 0⤊ 0⤋