[英]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.