簡體   English   中英

有人可以幫我解釋一下我的 c 代碼有什么問題嗎?

[英]Can someone help me to explain what is wrong in my c code?

所以首先,這是我的代碼:

#include <stdio.h>

double total(double assignment, double mid, double final){
    double totalScore;

    totalScore = (assignment * 0.2) + (mid * 0.3) + (final * 0.5);

    return totalScore;
}

char grade(char Z, char X, char Y, char P){



    char gradeAchieved;

    if (total(assignment, mid, final) >= 80 )`{
        gradeAchieved = Z;
    }
    else if ((total(assignment, mid, final) >= 70) && (total(assignment, mid, final) < 80)  ){
        gradeAchieved = X;
    }
    else if ((total(assignment, mid, final) >= 60) && (total(assignment, mid, final) < 70)  ){
        gradeAchieved = Y;
    }
    else if (total(assignment, mid, final) < 60){
        gradeAchieved = P;
    }
    return gradeAchieved;
}

int main()
{
    double x;
    double y;
    double z;
    char A = 'A';
    char B = 'B';
    char C = 'C';
    char D = 'D';
    printf("Input your assignment score: ");
    scanf("%lf", &x);
    printf("Input your midtest score: ");
    scanf("%lf", &y);
    printf("Input your final test score: ");
    scanf("%lf", &z);

    printf("Your total score is: %lf", total(x, y, z));
    printf("Your grade is: %c", grade(A, B, C, D));


    return 0;
}

在我的代碼中,假設當我運行它時,您將收到輸入作業、期中和期末成績的提示。 然后它會計算你的最終分數並決定你是否得到 A、B、C 或 D。但似乎每次我嘗試運行它時,我都會收到以下錯誤消息:

main.c: In function ‘grade’:
main.c:17:15: error: ‘assignment’ undeclared (first use in this function)
     if (total(assignment, mid, final) >= 80 ){
               ^~~~~~~~~~
main.c:17:15: note: each undeclared identifier is reported only once for each function it appears in
main.c:17:27: error: ‘mid’ undeclared (first use in this function)
     if (total(assignment, mid, final) >= 80 ){
                           ^~~
main.c:17:32: error: ‘final’ undeclared (first use in this function)
     if (total(assignment, mid, final) >= 80 ){
                                ^~~~~

我真的不知道如何解決它。 那么有人可以幫助我嗎? 很抱歉我的英語不好

出現這三個錯誤消息的原因是您沒有在函數grade()聲明任何名為assignmentmid和/或final變量。 您可以將四個char變量移動到grade()函數中並更改函數參數以匹配total()並且您的代碼應該可以運行。

char grade(double assignment, double mid, double final){

    char A = 'A';
    char B = 'B';
    char C = 'C';
    char D = 'D';

    char gradeAchieved;

    if (total(assignment, mid, final) >= 80 ) {
        gradeAchieved = A;
    }
    else if ((total(assignment, mid, final) >= 70) && (total(assignment, mid, final) < 80)  ){
        gradeAchieved = B;
    }
    else if ((total(assignment, mid, final) >= 60) && (total(assignment, mid, final) < 70)  ){
        gradeAchieved = C;
    }
    else if (total(assignment, mid, final) < 60){
        gradeAchieved = D;
    }
    return gradeAchieved;
}

int main()
{
    double x;
    double y;
    double z;

    printf("Input your assignment score: ");
    scanf("%lf", &x);
    printf("Input your midtest score: ");
    scanf("%lf", &y);
    printf("Input your final test score: ");
    scanf("%lf", &z);

    printf("Your total score is: %lf", total(x, y, z));
    printf("Your grade is: %c", grade(x, y, z));


    return 0;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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