簡體   English   中英

為什么我的 C 代碼打印出額外的行?

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

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