簡體   English   中英

代碼打印什么? C語言練習

[英]What does the code print? Exercise in C

我不確定為什么此代碼打印“h=13”而不是“h=2”。 有沒有人有想法?

#include <stdio.h>

int main() {
int j,h=1;
for(j=0;j<50;j++) {
        if(j%6==1) continue;
        h++;
        if(j==7 || j==14 || j==21)
               break;
}
printf("h=%d",h);
return 0;
}
  1. j = 0兩個 if 語句都不返回值 1,因此h遞增。
  2. j = 1 in (j % 6 == 1)1 % 6 將給出 1 的余數 語句j % 6為真,因此 h不遞增 ('%' 是余數運算符)
  3. j = 2j = 6兩個 if 語句都不返回值 1,因此h遞增。
  4. j = 7 in (j % 6 == 1)7 % 6 將給出 1 的余數 語句j % 6為真,因此 h不遞增
  5. j = 8j = 12兩個 if 語句都不返回值 1,因此h遞增。
  6. j = 13 in (j % 6 == 1)13 % 6 的余數為 1 語句j % 6為真,因此 h不遞增
  7. 對於j = 14 ,語句j == 14 is,因此執行 break 語句。

h 將增加: j = 0, j = 2 到j = 6, j = 8 到j = 12, j = 14,總共 12 次。

總計 12 + 1 ( h = 1 ) = 13

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM