嗨我正在嘗試編寫一個程序,要求用戶輸入一個數字等級,然後將其轉換爲字母等級,基本上是從一個浮點數轉換爲一個字符串,我有這種工作方式從等級說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