看板 C_and_CPP 關於我們 聯絡資訊
我用遞迴的方式來求最大公因數,程式碼如下, 想問一下,最底下那行gcd(b,a%b);的前面有加或沒加return,是否有影響? #include<stdlib.h> #include<stdio.h> int gcd(int,int); int main() { int a,b; scanf("%d%d",&a,&b); printf("%d",gcd(a,b)); return 0; } int gcd(int a,int b) { int temp; if(b>a) { temp = a; a = b; b = temp; } if(b==0) { return a; } else { gcd(b,a%b); } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.227.132.232
james732:試試看不就知道了? 09/10 21:40
d5123:我把code貼到online judge上,被判錯誤,加了return就好了, 09/10 21:52
d5123:但不知原因為何.. 09/10 21:53
james732:int gcd(int a,int b) ←一開始的int已經說這個function 09/10 21:55
james732:會return一個int,之後程式沒有return當然會不給你過 09/10 21:56
james732:就跟 int foo() { } 這樣的東西會被判錯誤是一樣的 09/10 21:56
d5123:感謝james大指導~ 09/10 22:26
loveme00835:原因就在錯誤訊息裡... 英文都不看的嗎? 09/11 02:03
bigpigbigpig:當然有影響,前面的if-branch為什麼就記得加return? 09/11 08:18
calqlus:那個調換的步驟你寫在gcd裡面幹什麼-.- 09/12 17:54