你好,我正在撰寫一個使用 for 回圈和 printf 繪制不同形狀的程式。最后一個形狀是菱形,也是唯一一個不能正常作業的。用戶輸入一個介于 1 和 10 之間的奇數,即中間行的字符數。我將代碼分成兩部分,頂部和底部。如果用戶輸入 7,菱形的底部是唯一不作業的部分,輸出應該是:
hhhhh
hhh
h
但是,代碼只輸出一行:
hhhhh
除了宣告變數之外,還有我的下半部分代碼:
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");
}
有任何想法嗎?
uj5u.com熱心網友回復:
您正在使用j兩次。
for( j = 0; j < diamond/2 ; j )
/* ...*/
for(j = 0 ; j < dots ; j ){
第二次使用后,第一次回圈的條件不再滿足,
這就是為什么它只執行一次。
通過一致的縮進,您更有可能發現這一點。
j當我將第二個內部回圈中的替換為 時,我得到了“7”的所需輸出i。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/439173.html
