精華區beta NTUE-CS99 關於我們 聯絡資訊
小數點的問題 我在google上面找到一個解決辦法 int a; char b; scanf("%d%c",&a,&b); if(b=='.'){ printf("Error"); return 0; } 然後你打9.9就會發現 耶 程式耍脾氣 只有打整數才會乖乖執行了耶 解釋一下原理 scanf在處理型態的時候 %d會把鍵盤上輸入0~9的部份傳回給變數 例如 scanf("%d",&a); 打 9.9 ^ 只有這個9會傳給a 如果改成 scanf("%d%c",&a,&b) 打 9.9 ^^ 傳給a傳給b 因為是設定%c 所以只有小數點會傳給b 如果是設定%s 就會把.9傳給b 那如果是只打9 a會收到9 但是b就變成空的囉 注意:前面的程式才是重點 這個東西知道一下就好 這個東西只是希望輸入成小數的時候能跳出一個錯誤訊息 本來的程式就可以自動把小數無條件捨去成整數了