小數點的問題 我在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就變成空的囉
注意:前面的程式才是重點 這個東西知道一下就好
這個東西只是希望輸入成小數的時候能跳出一個錯誤訊息
本來的程式就可以自動把小數無條件捨去成整數了