1樓:翔子菊子
x的值是每次來在執行迴圈體源第乙個語句進行賦值的。bai每個if語句都是du先加加,然zhi後再模2,模3,模7。全部條件滿足dao後,才會輸出x。
計算的並非是x的原始值,而是計算的三次加加後的x的值。
比如輸出28的時候,i的值是25,那麼此時x的值也是25。
首先進行第乙個判斷,因為是前加加,所以對x先加加,變成26,然後模2結果為0,條件成立,繼續第二個if判斷,同理先加加,變為27,模3結果為0,條件成立,繼續第三個判斷,同理,先加加,變為28,模7結果為0,條件成立,執行printf,把結果列印出來,結果就是28了。
2樓:藍佼佼
最後輸出的是3次++x後的x的值。
先執行for迴圈:
i=1賦值給x,x=1。執行if語句:
第一專個if:++x後x=2,符合(++x%2==0),執屬行第二個if
第二個if:++x後x=3,符合(++x%3==0),執行第三個if第三個if:++x後x=4,不符合(++x%7==0),退出迴圈體,返回for迴圈。i++,i=2.
然後開始第二次執行迴圈體:
i=2賦值給x,x=2。執行if語句:
第乙個if,++x後x=3,不符合(++x%2==0),退出迴圈體,返回for迴圈。i++,i=3.
i=3賦值給x,x=3。執行if語句:
.......... ..............
.後邊迴圈類同,直到執行完i=100時,程式結束。
當i=25和i=67時符合,程式執行完後的x值分別為28和70。
3樓:匿名使用者
沒有印錯 語句的意思是這兩分句是一條語句 都要執行 它的形式相當於加個括回號
x=y=0;
while(x<15)
printf("%d,%d",y,x);
程式是這樣執答行的 第一次判斷x<15 y++ 變成1 後面的語句x+=++y;++優先順序比+高 所以y先自加 變成2 x再加y值變成2 所以第一次迴圈完 x=2 y=2 執行完返回while判斷x是否小於15 小於則執行 如果不成立則返回x,y的值
同理一樣 我主要把每次迴圈的結果給你 按照上面我的說法你自己對對哈第一次 x=2 y=2
第二次 x=6 y=4
第三次 x=12 y=6
第四次 x=20 y=8
最後x不小於15 所以返回x,y的值
you clear???
++y用的是自加後的值 不是原來的值
c語言下面程式段的執行結果是個人算是
答案是4.實際上是求出6 10的所有合數數量。一旦能夠整除,就跳出當層j的迴圈,進入i的下一次迴圈。題目意思是巢狀迴圈,當滿足m除以n沒有餘數時候,執行s 跳出第二層迴圈,回到第一層迴圈繼續遍歷,直至兩層迴圈遍歷結束,輸出結果。過程如下 第一次 6 2 0,執行s s 1,跳出第二層迴圈 第二次 8...
c程式執行結果是
第一次錯誤是死迴圈和除數為0.while i x i y 迴圈裡面i沒有變化.第二次錯誤是除數為0.int i 0,j 1 if x i 0 y j 0 這裡i是0.無法進行 運算.同時你的演算法也有問題 以下 請參考 include void main while a num1 num2 0 利用...
下面程式段的執行結果是int a1,2,3,4,5,6p a int i,sum 0 for i 1 i6 isump
p 是先取值,再將指標 其他應該沒難度吧 下列程式段的執行結果是 int a 1,2,3,4,5,6,7 p a 為什麼是9 for迴圈裡有n s p n 這裡也有n 相當於一次迴圈n n 2,所以,s的值為1 3 5 9 14.下面程式段的執行結果是 int a 3 1,2,3,4,5,6 c 兩...