1. ホーム
  2. c

[解決済み] エラー: 期待される識別子または '(')' の解決方法

2022-03-03 08:54:56

質問

プログラミングをしていて、ある問題が発生しました。 何度もこのエラーが出ます。

jharvard@appliance (~/Dropbox/pset1): make mario
clang -ggdb3 -O0 -std=c99 -Wall -Werror    mario.c  -lcs50 -lm -o mario
mario.c:23:5: error: expected identifier or '('
    do
    ^
mario.c:32:1: error: expected identifier or '('
do
^
2 errors generated.

ネットでいろいろ検索してみたのですが、問題が見つかりませんでした。 の後にある;を削除してください。 int main(void) は役に立ちませんでした。

これは私のコードです。

#include <stdio.h>
#include <cs50.h>
#include <math.h>

int main(void);

    //Ask User for Height, and check

    int a, b, rows, height;
    int a = 0;
    int b = 0;
    int rows = 1;   

    do
    { 
        printf ("Height: ");
        height = GetInt();
    }
    while (height <=0 || height > 23);   

    //build half pyramid

    do
    {
        do
        {
            printf("r");
            a++;
        }
        while (a < height - rows);

        do
        {
            printf("#");
            b++;
        }
        while (b < rows + 1);


        printf("\n");
        rows++;

        while (rows <= height);
    }

数日前からこの問題を解決しようとしているのですが、どうしても解決できないのです

本当にありがとうございました。

解決方法は?

do/whileでネストされたループがあります。doで始まりwhileで終わることを確認してください。

ファイルの最後にある、"while"が正しくないようです。

printf("\n");
rows++;

while (rows <= height);
}

while (rows <= height);' の前の '}' を閉じていない可能性があります。

正しいコードは以下の通りです。

int main(void)
{

    //Ask User for Height, and check

    int a, b, rows, height;
    a = 0;                    // <- removed int
    b = 0;                    // <- removed int
    rows = 1;                 // <- removed int

    do
    { 
        printf ("Height: ");
        height = GetInt();
    }
    while (height <=0 || height > 23);   

    //build half pyramid

    do
    {
        do
        {
            printf("r");
            a++;
        }
        while (a < height - rows);

        do
        {
            printf("#");
            b++;
        }
        while (b < rows + 1);


        printf("\n");
        rows++;
    }                             // <- add }
    while (rows <= height);
}