本文目錄一覽:
- 1、在c語言程序中if-else語句的else語句總是不執行是怎麼回事
- 2、C語言:if語句怎麼不起作用
- 3、C語言 後部分的if不能正常執行,一直輸出”一位數” 哪裡出了問題?是不是if不能輸(printf(“”)) 判斷語句
- 4、C語言為什麼IF語句輸出的總是else後的語句。
- 5、C語言if語句,無法得到輸出,求各位高手解答,謝謝!
- 6、為什麼if後面的語句不執行,直接輸出「input error!」,
在c語言程序中if-else語句的else語句總是不執行是怎麼回事
1、新建一個工程和文件,命名為Third和first.c , 然後書寫好程序的模板結構。
2、首先我們演示一個很不規範的代碼寫法,很多初學者容易寫成這樣,導致出現意想不到的運行結果。
3、很多初學者就會不知所措,其實只要把代碼按照正確的縮進方式書寫,就可以很一目了然了。
4、這樣書寫過之後,就很清楚了,如果覺得還不夠清楚的話,再將代碼寫的更加規範一點,那就成為下面的樣子了。
5、if-else的嵌套結構中,else跟if進行配對,通過演示得到結果。
C語言:if語句怎麼不起作用
如果if語句執行了 那麼不可能不起作用
所以 如果程序運行結果非預期,那麼可能是
1 if語句沒有執行到 也就是代碼因為某種原因跑到其他地方去了
2 if本身的判斷語句有問題 寫錯了
3 if裏面執行的代碼有問題 沒有起到預期效果
可以單步跟蹤一下
或者上傳完整代碼供分析。
C語言 後部分的if不能正常執行,一直輸出”一位數” 哪裡出了問題?是不是if不能輸(printf(“”)) 判斷語句
else if(printf(“兩位數\n”))這句不對, if條件語句里這樣判斷是不會有任何結果的。 if裏面判斷變量一般是這樣用的
C語言為什麼IF語句輸出的總是else後的語句。
首先請確認你輸入的數能正確的賦值給變量x,按照你的scanf中寫法,輸入時應該是 x520 這樣才對
C語言if語句,無法得到輸出,求各位高手解答,謝謝!
把
scanf(“%d\n”,X);
改為
scanf(“%d”,X);
原來的輸入需要有個回車的格式(“\n”),所以在運行時,輸入x的值之後,要敲兩個回車鍵,才能完成輸入,輸出Y的值。修改後,只要敲一個回車確認輸入就可以得到y的值了。
為什麼if後面的語句不執行,直接輸出「input error!」,
直接打印一次你輸入的內容,不就能看到問題原因了嗎?
在那個
scanf(“%d%s%c%c”,person[i].num,person[i].name,person[i].sex,person[i].job);
下面加一行:printf(“%d
%s
%c
%c\n”,
person[i].num,
person[i].name,
person[i].sex,
person[i].job);
你會發現在顯示完名字後會換行;
你輸入名字後按了回車,scanf()函數把換行符留在輸入緩衝區里,之後的兩個%c,對應sex和job,sex獲得了換行符,而job需要你手動輸入,但是,你誤以為還要輸入sex和job,於是,輸入了兩個字符,本來是給sex的字符卻給了job,剩下的一個字符留到下次用scanf()函數時再獲取。
解決辦法:
先聲明一個臨時字符串,假設命名為temp;
char
temp[100];
然後,把這行代碼:
scanf(“%d%s%c%c”,person[i].num,person[i].name,person[i].sex,person[i].job);
改成:
scanf(“%d”,
person[i].num);
scanf(“%s”,
person[i].name);
scanf(“%s”,
temp);
person[i].sex
=
temp[0];
scanf(“%s”,
temp);
person[i].job
=
temp[0];
也就是先保存一段字符串,再從字符串中取第一個字符賦值給相應變量,這樣,就不會受到換行符的影響。
你這個程序只是寫給自己用的,輸入內容時,程序又不提示該輸入什麼,是字符串還是數字?是名字還是編號?只有你自己懂怎麼用,別人不看代碼只運行它,可不知道怎麼輸入,也容易讓程序崩潰,因為你這行代碼: char
name[10];,只能輸入10個字符,輸入多了就會造成數據溢出,導致程序崩潰。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/180179.html