題目鏈接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1160
1 #include<iostream> 2 using namespace std; 3 int f(int x) 4 { 5 if(x%10)cout<<x%10; 6 return f(x/10); 7 } 8 int main() 9 { 10 int n; 11 cin>>n; 12 cout<<f(n); 13 return 0; 14 }
樣例順利通過。。。
看起來沒有問題,但結果很悲催。。。
找了幾分鍾終於看到問題所在
能編譯通過,樣例輸出也沒有問題,然而oj上為0,改int為void后:
很顯然是返回值類型與函數類型不匹配:cout輸出返回值類型應該是void,但后面的return類型卻是int,so,我也很凌亂。。。。
嘗試修改如上,編譯通過,但仍然是0分,為啥呢么?
然而我又該代碼如下:
神奇AC,驚喜。。。
敲黑板總結啦:使用函數時,注意函數的返回類型和申明類型必須高度一致。。。尤其注意有return和輸出(printf(),cout())時,千萬要刀清楚,不要自己搞蒙自己,如果混亂,死都不知道怎么死的。。。。