1樓:潭清安董丁
anf("%c",&a)來接收使用者輸入的乙個字元時,會將回車符也接收下來。c語言在處理時,會將使用者輸入放在鍵盤緩衝區,使用scanf來接收%c時,編譯器從鍵盤緩衝區讀取乙個char字元,但是並不清空後面的字元,所以導致下一次scanf("%c",&a)時,將剩下的回車符先給讀進來,並進行處理了。
要解決這個問題,可以使用getch()或者getche()函式。
但是:getch()介面,接收字元後不會將字元回顯到顯示器,所以使用者看不到自己輸入的字元。
而getche()介面就沒有這個問題,所以應該使用getche()。
2.迴圈計數錯誤,多迴圈一次。
這個你仔細推算一下就出來了。
一般解決這種問題的話,使用do/while迴圈較多,因為do/while迴圈可讀性好一些。
以下是改過以後的**,已經編譯執行確認:
#include
#include
main()
else
break;
}while(1);
if(a=='b')
else
getch();}
2樓:潛淑敏熊壬
每次要求使用者輸入時,可以通過呼叫標準庫函式獲取使用者輸入,如等等,你呼叫幾次,程式就會要求使用者輸入幾次。
例如你這裡分兩次輸入就可以寫成如下形式:
printf("第一次輸入");
scanf("%d",&a);
printf("第二次輸入");
scanf("%d",&b);
c語言中如何實現while迴圈,執行設定的一段時間,比如5秒
3樓:匿名使用者
你是準備隔一段時間執行這個迴圈麼,用sleep,如
while(true)
4樓:匿名使用者
#include
void mysleep(int second)
second 輸入多少就是多少秒了。
5樓:匿名使用者
#include
#include
int main()
return 0;}
6樓:
這個不難,不知道你要的是不是這樣:
unsigned int time=100000;
while(time--);
如果你要延時比較長,time變數要用長整型,
c 語言while迴圈,c語言while的用法
p1 p2 這個是賦值語句,而非比較運算。字元陣列雖然有大小限制,但是指標就不同,即便超過了大小,指標指向陣列越界後的下乙個記憶體單元,並不會發生錯誤 另外,printf s a 函式列印字串,它是在遇到字串結束符的時候才終止輸出,此時a陣列的值已經被賦值為p2所指向的記憶體空間的值。這個程式是錯的...
C語言怎麼退出while迴圈,c語言中while的用法
不不見不念 if條件語句寫錯了 if a 判斷字串相等不能用等號 if strcmp a,0 要這麼寫 while 是乙個迴圈體,退出迴圈體的方法有 1 迴圈體條件 不成立,如 while a 0 當 a 0 的時候,條件 a 0不成立,while 迴圈結束,退出 while 迴圈。2 在迴圈體內使...
關於C語言,本題為什麼for迴圈用了兩次呢,求詳解都是什麼情況下for迴圈需要多次使用啊謝謝
既然你要詳細解釋,我就從題目開始來分析 題目要求函式能幹3件事 1 計算出平均分 2 統計低於平均分的人數 3 把低於平均分的分數儲存在另乙個陣列中 我們來分析一下 首先,要做到這些是就必須遍歷陣列中的每乙個元素,因此迴圈是必須的,而且對於這種迴圈次數已知的問題 陣列元素數為9 我們一般會用for迴...