1樓:風捲流年
第一次迴圈走到
if(x%3)
時x%3=8%3=2
所以if判斷為true,這時候會列印8 然後8-1=7然後執行continue 迴圈結束 x--所以 7-1=6
第二次迴圈
if(x%3)
時x%3=6%3=0
所以if判斷為false,這時候跳出if 執行下邊的:
printf("%d,",--x);
--x先運算再輸出 6-1=5 然後輸出
迴圈結束x--
5-1=4
第三次迴圈
if(x%3)
時x%3=4%3=1
所以if判斷為true,這時候會列印4 然後4-1=3然後執行continue 迴圈結束 x--所以 3-1=2
第四次迴圈
if(x%3)
時x%3=2%3=2
所以if判斷為true,這時候會列印2 然後2-1=1然後執行continue 迴圈結束 x--所以 1-1=0
下次迴圈判定條件為false 迴圈結束。
2樓:風之心飛
第一次 :x=8 輸入 %3 = 2 ,printf("%d,",x--);continue;
,printf x=8 (x-- 先賦值,然後x = x-1) x = x-1 = 7;,continue
直接跳脫進入下一次迴圈,x-- -> x = 6;
第二次 : x=6 進入迴圈 %3=0; printf("%d,",--x);
printh x-1=5; (--x 先x=x-1, 在返回結果); x=5 ,進入下一次迴圈x-- -> x = 4;
第三次 : x=4 %3=1 , printf("%d,",x--); printf x=4, 同一 x=x-1=3 ; continue 直接進入下一次迴圈
x-- -> x = 2;
第四次 : x = 2 %3=2 , printf("%d,",x--); printf x=2, 同一 x=x-1=1 ;
continue 直接進入下一次迴圈 x-- -> x = 0 ,不滿足迴圈條件跳出
3樓:唐門小七
首先是 8, 然後 8%3 為true,進去 printf(....,x--), 這時候 輸出8,x=7,continue之後 再執行for迴圈的條件 x-- x為6,然後 6>0 6%3 輸出printf(...., --x), --x表示先減在輸出,所以x是5,然後輸出5, 之後在執行for迴圈條件 x--, x為4, 然後輸出4,x執行2遍--x,x為2.
4樓:匿名使用者
輸出就應該是8,5,4,2啊。一步一步看:第一輪迴圈,x=8,x%3=2,執行printf("%d",x--);continue;這裡x--返回8,但是x已經變成7了。
continue,第二輪迴圈,for裡x--,這時x=6.所以x%3=0,執行printf("%d",--x);--x返回5,x也變為5之後第三輪迴圈,在for裡x--,這時x是4,4%3=1,輸出4,x--所以x得3,下一輪for裡又有x--,x為2……也就是說,for的每一圈x都要減一,然後for裡面又有x--或--x這種改變x的操作,所以得到8,5,4,2的結果。
為什麼f2的輸出是對的
一個整數預設是 抄int,一個襲 小數預設是double,一個字串預設是string所以f1是float,你 要給他一個double是錯誤的。應該f1 0.1f 這個f就告訴編譯器,0.1是float。f2是float,123是int,你把int給float是合法的,因為float的範圍比int大,...
為什麼最後無符號輸出的是655534而不是
題目 655534 應是問 65534 或 4294967294 吧。輸出語句裡的格式定義,實際上是 程式設計師 對 輸出 時 的資料轉換要求。d 則是要求 把記憶體資料看成 有符號整型數值,u 則是要求 把記憶體資料看成 無符號整型數值。負數,機器內用補碼形式存放。2,記憶體是 0xfffffff...
三態門輸出端並聯使用時為什麼兩輸出端不能同時工作
由其內部結構可知,當兩個輸出同時工作時其工作狀態不確定。即當一個輸出高電平,一個輸出低電平時存在較大的灌電流,使並聯輸出處於非0非1的狀態,破壞原有的邏輯關係。你是njit的吧,哈哈哈 206080137。學號。在三態門輸出端並聯使用時為何輸出端不能同時工作?由其內部結構可知,當兩個輸出同時工作時其...