1樓:匿名使用者
你可以象計算機一樣一句一句機械地執行你的程式,這就叫跟蹤:
int x=1,y=1; //x=1,y=1
while ( x<=9) //因條件成立執行迴圈體
y=1; //y=1
while(y<=x) //x=1,y=1,條件成立執行迴圈體
輸出:1*1=1
y++; //y=2
while(y<=x) //x=1,y=2,條件不成立結束迴圈
printf("\n"); //輸出換行,可見while(y<=x)迴圈是要輸出一行內容,而while(x<=9)可控制輸出幾行
x++; //x=2,y=2
while ( x<=9) //因條件成立執行迴圈體
y=1; //y=1
while(y<=x) //x=2,y=1,條件成立執行迴圈體
輸出:2*1=2
y++; //y=2
while(y<=x) //x=2,y=2,條件成立執行迴圈體
輸出:2*2=4
y++; //y=3
while(y<=x) //x=2,y=3,條件不成立結束迴圈
printf("\n"); //輸出換行
...經過上述跟蹤,得到了完整的兩行輸出:
1*1=1
2*1=2 2*2=4
可以預見的是後面的輸出:
3*1=3 3*2=6 3*3=9
...9*1=9 9*2=18 9*3=27 ... 9*9=81
是一個九九乘法表,程式中while語句要分析它的起始和結束條件,因為while(x<=9)迴圈的結束條件是x>9,因此我們注意一下x的初始條件,x=1;迴圈體中對x進行無條件的賦值計算的語句就一句:x++;那麼可得出:經過迴圈,每次迴圈x會分別等於1,2,3,4,...
,9;y值在while(x<=9)迴圈體內,每次都要重新置1,然後迴圈條件是y<=x,迴圈體中有y++,也就是y從1逐次變化到x,如果用for迴圈表示可能會更容易讀懂:
for ( x=1;x<=9;x++,printf("\n") )
for ( y=1;y<=x;y++ )
printf("%d*%d=%d\t",y,x,x*y);
2樓:匿名使用者
先說外面的while迴圈
while (x<=9)
控制x從1-9迴圈。
裡面的while迴圈
y=1;
while (y<=x)
y的值從1-x來迴圈,並計算y乘x的值
3樓:匿名使用者
你這個應該是列印99乘法表吧
你對應一下,很簡單的
裡面那個while,就是判斷x是否小於等於y,如果符合條件,列印x*y=值x*y
如果不符合條件,列印換行,y加上1在列印
4樓:東方偶爾白
只是個雙迴圈 不知道你那裡不懂
c語言問題裡面的while(!r)什麼意思,換成while (r!=0)為什麼不可以
5樓:史前捍衛
!r是非的意思,!=是不等於,假如r=1 那麼!r是小於和等於0即為假 while(!r)是假程式不執行,r!=0是真的即為while (r!=0)真程式執行
6樓:匿名使用者
首先問題:
while(!r)表示r=0時迴圈, while(r!=0)表示r非0時迴圈
補充問題:
這是一個遞迴,表示r為0了就直接返回模的除數,否則就繼續除,else後面就是遞迴函式
這個貌似是求m和n的最大公約數的function吧
7樓:網際網路前世今生
!r意思是非r的意思,就是r是假的意思,可以把它換成if(r==0)也可以
,希望對你有幫助,有問題可以問我,呵呵。共同學習!
求c語言大神,這道題中while內 是先算n++ 還是n<=1 ,為什麼答案是123 看不懂啊
8樓:紛採
i++ 與++i 都會使得i自增1,區別是,++i表示式的值等於 i+1,而i++的表示式的值等於i;
可以理解為++i先加再比較而i++則是先比較再加。
所以這個題,第一次迴圈,n++值為0 <= 1,然而下一步n自加了,所以輸出1
第二次,則是1<=1,同理輸出2,
第三次,表示式的值為2,退出迴圈。至於3是退出迴圈後那句話輸出的
9樓:萢萢
先算n<=1
然後再進行n++運算
c語言裡面if語句的巢狀看不懂C語言裡面if語句的巢狀看不懂
if else if語句是一對判斷組合 多個順序if是平行的執行判斷的。舉例說明 if 我有錢 else if 我有時間 上面的語句意思如下 如果我有錢 if判斷成立 則我只能去 即使我有時間又有金錢也不能去旅遊 而如果我沒有錢 if判斷不成立 則要看我是否有時間,有時間就去旅遊 沒錢去旅遊就苦了 ...
為什麼我看不懂
有時候直白的人不喜歡那些拐彎抹角。很多事情並不是看不懂,而是不想去看,不想去明白。但有時候卻是真的不知道那些拐彎抹角的東西。沒人一點即透的東西,我們卻需要想很多遍。有句話叫當局者迷 旁觀者清!古詩也說不識廬山真面目,只緣身在此山中!什麼事情看不懂呢?比如文章之類的,還是這社會太發科學了,有些東西是看...
C語言新手看不懂下面的for語句,m 的執行次數是兩個fo
int i,j,m 0 for i 1 i 15 i 4 printf d n m 或許寫成這樣你就du知道了,其zhi實這個dao跟你的一樣並沒有什專麼改變,只是for的迴圈體屬裡面又是一個迴圈體,只有裡面的迴圈體執行完畢,才會進行下一輪的迴圈。可以這麼理解,因bai為m 語句是du在變數j的fo...