[英]Why is my C code printing out an extra line of rows?
#include <stdio.h>
#define rows 500 //can define rows as any number
int main()
{
int i,j;
for(i=0;i<=rows;++i)
{
for(j=0;j<(2*i+1);++j)
{
printf("* ");
}
printf("\n");
}
return 0;
}
所以這是我的代碼,它的作用是打印#define 設置的行數並創建一個直角三角形。 但是無論我給它設置什么數字,它總是會打印出 1 行額外的星星,我不知道為什么。
我知道我可以將它設置為i=0;i<500;i++
並且只是忘記#define
語句,但我正試圖讓它與它一起工作。
您已將條件設為
i=0;i<=rows;++i
可能是打字錯誤,應該是
i=0;i<rows;++i
0 到 500 表示循環運行 501 次。
#define
沒有問題, for
循環中的條件語句有一個問題。
我相信,您忽略了<=
運算符。 您只需要<
運算符。 改變
for(i=0;i<=rows;++i)
到
for(i=0;i<rows;++i)
也就是說,推薦的main()
簽名是int main(void)
。
這個說法:
for(i=0;i<=rows;++i)
運行 i=0,1,2,3...,rows
因此,它總共運行了rows+1
次。
您可以執行以下任一操作:
for(i=1;i<=rows;++i) // for 1 to rows
或者
for(i=0;i<rows;++i) // for 0 to rows-1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.