嗨我正在尝试编写一个程序,要求用户输入一个数字等级,然后将其转换为字母等级,基本上是从一个浮点数转换为一个字符串,我有这种工作方式从等级说B +它只返回+。我知道这是因为我返回的字符只是一个字符。我曾尝试将char letterGrade改为char letterGrade [3];但是这给了我错误:从int类型分配类型为char [3]时的不兼容类型。欣赏是否有人能告诉我我要去哪里,因为我对此很陌生。C程序将浮点数转换为字母等级
#include <stdio.h>
#include <string.h>
struct module {
char moduleid[10];
int credit;
float grade;
};
//Convert numeric grade to letter grade
char getGrade (float input){
char letterGrade[3];
if(input >= 80&&input<=100)
letterGrade = 'A';
else if(input >= 70&&input<=79)
letterGrade = 'B+';
else if(input >= 60&&input<=69)
letterGrade = 'B';
else if(input >= 55&&input<=59)
letterGrade = 'B-';
else if(input >= 50&&input<=54)
letterGrade = 'c+';
else if(input >= 40&&input<=49)
letterGrade = 'c';
else if(input >= 35&&input<=39)
letterGrade = 'D';
else
letterGrade = 'F';
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%s\n",mod1.moduleid,mod1.credit,mod1.grade,getGrade(mod1.grade));
printf("%s\t\t%d\t\t%f\t%s\n",mod2.moduleid,mod2.credit,mod2.grade,getGrade(mod2.grade));
return 0;
}
所以如果'input'是'79.5',结果就是''F''。这是一个艰难的课 - 希望它不是编程。我将与@BLUEPIXY一起获得一个“B +”。 – chux 2014-11-22 23:39:02