簡體   English   中英

為什么我的 for 循環不能正常工作 (C)?

[英]Why won't my for loop work correctly (C)?

你好,我正在編寫一個程序,用 for 循環和 printf 繪制不同的形狀。最后一個形狀是菱形,也是唯一不能正常工作的形狀。 用戶輸入一個介於 1 和 10 之間的奇數 integer,這是中間行中的字符數。 我將代碼分成兩部分,頂部和底部。 如果用戶輸入 7,菱形的底部是唯一不起作用的部分,output 應該是:

  hhhhh
   hhh
    h

但是,代碼只輸出一行:

   hhhhh

除了聲明變量之外,還有我的下半部分代碼:

#include <stdio.h>
int main(){
        int i,j,space,dots,diamond;
        diamond=7;
        space = 1;
        dots = diamond - 2 ;

        for( j = 0; j < diamond/2 ; j++){

            for(i = 0; i < space; i++){
                 printf(" ");
            }
        
            for(j = 0 ; j < dots ; j++){
                 printf("h");
            }
           
            dots = dots - 2;
            space++;
            printf("\n");

        } 

return 0;
}
      
             

有任何想法嗎?

您正在使用j兩次。

for( j = 0; j < diamond/2 ; j++)
/* ...*/
for(j = 0 ; j < dots ; j++){

第二次使用后,第一次循環的條件不再滿足,
這就是為什么它只被執行一次。
通過一致的縮進,您更有可能發現這一點。

當我用i替換第二個內部循環中的j時,我得到了“7”所需的 output。

暫無
暫無

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

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