模仿例題寫的到底是哪里不正確了?我還有一個問題是為什么當n<=0時要加return 0;這里的意思是返回值為0嗎?那么到最后的return sum時返回的是0?假如我把n改成-1,那么輸出的是“0”還是“輸出錯誤”?
#include?<stdio.h> int?word(int?n) { int?sum; if(n<=0) { printf(“輸入有誤\n"); return?0; } else?if(n==1) { sum=1; } else? { sum=word(n)+n; n--; } return?sum; } int?main() { int?n=10; printf("小明到第%d天一共學習了%d個單詞",n,word(n)); return?o; }
2015-10-25
在你的代碼中的第7行printf中的左分號為中文輸入狀態(tài),需要改成英文輸入狀態(tài),第16行的右括號也是如此,最后的return 應該是數(shù)字0,而不是字母o。還有在運行過程中陷入死循環(huán),如果你把17行的n--與16行對調(diào)就能成功運行。
在使用return時,程序會退出當前函數(shù)并返回內(nèi)容,當n<=0是會返回0,并且退出當前函數(shù)不會執(zhí)行接下來的return sum。如果你把n改為-1,程序運行會輸出:
輸入有誤
小明到第-1天一共學習了0個單詞