每個人!我正在嘗試解決 cs50 中的 mario 問題,當我插入這樣的 for 回圈時:
#include <cs50.h>
#include <stdio.h>
int main(void)
{
int height;
int i = 0;
int j = 9;
do
{
height = get_int("establish the height of the pyramide: ");
}
while (height < 1 || height > 8);
printf("you select the height of: %i\n", height);
for (i < height; i )
{
for (j > height; j )
{
printf("#");
}
}
}
我收到這樣的錯誤:
mario.c:17:12: 錯誤: 關系比較結果未使用 [-Werror,-Wunused-comparison] for (i <= height; i ):
我已經嘗試在回圈內宣告 i ,但產生的錯誤是相同的。我在這里做錯了什么?
uj5u.com熱心網友回復:
在 C 中,for 回圈按以下方式定義
for ( expressionopt ; expressionopt ; expressionopt ) statement
for ( declaration expressionopt ; expressionopt ) statement
也就是說,它包含三個部分。第一部分要么是一個運算式(可能被省略),要么是一個宣告。
所以這些 for 回圈
for (i < height; i )
for (j > height; j )
不滿足語法。此外,第二個回圈中的條件
j > height
沒有意義。
還要嘗試在使用它們的最小范圍內定義變數。
看來您需要的是以下內容
for ( int i = 0 ; i < height; i )
{
for ( int j = 0; j < i 1; j )
{
putchar( '#' );;
}
putchar( '\n' );
}
或者可能像下面這樣
for (int i = 0; i < height; i )
{
printf( "%*c", height - i, '#' );
for (int j = 1; j < i 1; j )
{
putchar( '#' );;
}
putchar( '\n' );
}
uj5u.com熱心網友回復:
即使您需要在 for 回圈中跳過初始化,您也需要將;.
for (; i < height; i ) {
for (; j > height; j ) {
printf("#");
}
}
只需將其更改為應該可以。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/451708.html
