看板 C_and_CPP 關於我們 聯絡資訊
先貼上我的程式 int inverse(int x)//inverse的副函式 { int invNum=0; while(x>0) { invNum=x%10; cout << invNum; x/=10; } } int main() { int num=0,a=0; cout << "Input a num between 1000~9999:"; cin >> num; while(num>999 && num<10000) { a=inverse(num); cout << a << endl; break; } system("PAUSE"); } 程式目的是輸入1234,輸出4321,請問各位板友 為什麼我compile出來都會補0呢?(eg.輸入1234,輸出會是43210) 請幫我看看我的程式有哪邊需要修改的>"< 謝謝大家^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 221.120.0.67
stupid0319:因為你沒有return 10/23 19:52
silia:請問是要改在哪呢?謝謝^^ 10/23 20:00
stupid0319:cout << invNum; <這行輸出4321 10/23 20:00
stupid0319:cout << a << endl; 這行輸出0 10/23 20:00
stupid0319:while + break 不失為取代if的好寫法 10/23 20:02
silia:那請問我是不該用a=inverse(num)嗎?我以為這樣比較好~ 10/23 20:03
silia:好像不對耶...跑出來結果不是我要的QQ 10/23 20:05
stupid0319:a最後都會變成0,假如是return x; 10/23 20:05
silia:是要在哪邊補return x呢?如果在副函式裡,結果是一樣的阿~ 10/23 20:07
stupid0319:http://nopaste.csie.org/7d6a2 10/23 20:11
silia:謝謝你 我又學到東西了>///< 10/23 20:14
stupid0319:我以前從沒想過拿while+break來取代if 10/23 20:17
stupid0319:以後可以拿來誤導別人 10/23 20:17
silia:誤導別人....是這樣寫法比較不好嗎Q"Q? 10/23 20:57
LPH66:呃 你的while的下一圈什麼時候會跑? 10/24 05:07
那個...我只是在練習用while作條件判斷^^"" 原本的主程式是寫 int main() { int num=0,a; do { cout << "Input a num between 1000~9999:"; cin >> num; } while(num<999 || num>10000); a=inverse(num); cout << a << endl; system("PAUSE"); } 目的是輸入錯誤的話就會一直重新輸入~ 只是因為副程式一直沒寫好,所以在練習while後就乾脆用break跳出= ="" 很呆的理由... ※ 編輯: silia 來自: 221.120.2.155 (10/24 06:50)