[英]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()
聲明任何名為assignment
、 mid
和/或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.