1樓:匿名使用者
while(a=14)的意思是a賦值為14,每次執行到這兒的時候,a的值就是4了,由於14為真,所以迴圈下去
因些最後停止迴圈是因為多次後,y的值大於了50;
整個過程中,a,y的值如下:
a==10,y==0
a==12,y==12
a==14,a==16,y==y+a==28a==14,a==16,y==y+a==44a==14,a==16,y==y+a==60這時,y大於了50,迴圈終止
你的程式和下面程式等價
#include
main()
while(a);
printf("a=%d,y=%d\n",a,y);}
2樓:夜風輕吹
= =不會啊,,,該a==14,,a=14是賦值語句不是邏輯語句,要a==14才行不然會永遠迴圈(因為永遠非0)
3樓:匿名使用者
a=16, b=58
while(a=14) a=14只是一個賦值語句而已。與下面的程式相同:
#include
main()
while(1);//無限死迴圈
printf("a=%d,y=%d\n",a,y);
} 程式執行過程:
先do一遍: a=12,y=12; y<50 不執行break
執行while裡的a=14,再繼續do: a=16,y=28,y<50 不執行break
執行while裡的a=14,再繼續do: a=16,y=44,y<50 不執行break
執行while裡的a=14,再繼續do: a=16,y=56,y>50 執行break,跳出while迴圈,執行printf
4樓:0o男二號
不會無限迴圈 if(y>50)break;
也就是說當y>50的時候就會跳出迴圈
第一次: a=12 y=12
第2次: a=14 y=26
第3次: a=16 y=42
第4次: a=18 y=60 此時break退出迴圈
C語言初學,C語言初學者?
程式本身並沒有錯,以空格鍵跳出迴圈是不可能的。因為在輸入數值時,scanf會自動忽略空格。你要輸入不確定個數的數值,可以定一個正常情況下不出現的數作為退出標記。比如正常都是非負數時,可以用負數作為退出條件。把while 1 改寫為while a 0 或while a 99999 while 1 這段...
C語言初學者請教下return的用法
第二個也是可以的,最後一個return 0 後面的分號是中文狀態的,不懂是不是你的筆誤,像這樣的話把函式定義成bool型別的,然後return false或者true更好。一個函式里可以有多個return,不過一執行了return就會結束這個函式。你應該在if x a 0 的裡面返回0,因為你在主函...
我是C語言初學者,有問題請教高手
這很正常了,因為這些程式是在dos視窗中執行的,執行完之後就會退出dos視窗,如果你先開啟一個dos視窗,然後再輸入那個檔名執行的話,就不會這樣了,如果你覺得這樣做太麻煩,那你就在程式的後面加個暫停語句getch 或者system pause 就可以了。一定要加在 return 0 這個語句前,這樣...