0

次のコードがあります。

#define MIDTERM_PERCENTAGE 40
#define FINAL_PERCENTAGE 60
#define ARRAY_LENGTH(array) (sizeof((array))/sizeof((array)[0]))

struct student 
{
     char name[20];
     int  midterm;
     int  final;
     int  grade;
}

int calcGrade(struct student s) {
    int midterm = (s.midterm * MIDTERM_PERCENTAGE)/100;
    int final = (s.final * FINAL_PERCENTAGE)/100;
    int grade = midterm + final;
    return grade;
}

そして、私はこれらのエラーが発生しています:

student.c:13: two or more data types in declaration of `calcGrade'
student.c: In function `calcGrade':
student.c:17: incompatible types in return

次の宣言を含むヘッダー ファイルもあります。

int calcGrade(struct student s);

ただし、エラーは表示されません。おそらく私の部門の問題だと思いましたが、 grade=midterm+final の設定でエラーが発生しないため、戻り値の型に問題がある理由がわかりません。

4

1 に答える 1

5

構造体定義の末尾にセミコロンを付け忘れました。

于 2012-05-18T08:34:22.503 に答える