您好我对CI非常陌生我试图编写一个简单的程序,提示用户输入一些模块,然后输入每个模块的信用和数字等级,该程序必须打印出用户收到的信息,包括每个模块的字母等级和底部的GPA。我已经到了我试图将数字等级转换为字母等级的地步,我正在尝试写一个我可以输入数字等级的课程说" mod1.grade"这将返回字母等级,但不能解决这个问题,因为我说我是一个完整的新人,所以对任何帮助都会感激不尽。
#include <stdio.h>
#include <string.h>
struct module { char moduleid[10]; int credit; float grade; };
int main( ) {
struct module mod1,mod2; printf("Please enter: module id, module credit and module grade\n");
scanf("%s%d%f",mod1.moduleid,&mod1.credit,&mod1.grade);
scanf("%s%d%f",mod2.moduleid,&mod2.credit,&mod2.grade);
String getGrade (float input){
String letterGrade;
if(input >= 80&&<=100){
letterGrade = 'A';
}
return letterGrade;
}
printf( "Module id\tCredit\t\tGrade\n");
printf("%s\t\t%d\t\t%f\t%s\n",mod1.moduleid,mod1.credit,mod1.grade,getGrade(mod1.grade));
printf( "%s\t\t%d\t\t%f\n",mod2.moduleid,mod2.credit,mod2.grade);
return 0;
}
答案 0 :(得分:0)
您的代码应为:
#include <stdio.h>
#include <string.h>
struct module {
char moduleid[10];
int credit;
float grade;
};
char getGrade (float input){ //you need to return a char
//there isn't any "String" data type in C
char letterGrade; //char not String
if(input >= 80&&input<=100){ //note the difference here
letterGrade = 'A';
}
return letterGrade;
}
int main( ) {
struct module mod1,mod2;
printf("Please enter: module id, module credit and module grade\n");
scanf("%s%d%f",mod1.moduleid,&mod1.credit,&mod1.grade);
scanf("%s%d%f",mod2.moduleid,&mod2.credit,&mod2.grade);
printf( "Module id\tCredit\t\tGrade\n");
printf("%s\t\t%d\t\t%f\t%c\n",mod1.moduleid,mod1.credit,mod1.grade,getGrade(mod1.grade));//%c for a character
printf( "%s\t\t%d\t\t%f\t%c\n",mod2.moduleid,mod2.credit,mod2.grade,getGrade(mod2.grade)); //same here too
return 0;
}