안녕하세요 저는 숫자 등급을 사용자에게 묻는 프로그램을 작성하려고합니다. 그리고 나서 문자를 float에서 문자로 변환합니다. 학년이 B +라고 말할 때부터 단지 +를 반환합니다. 나는 이것이 오직 한 문자 인 숯을 돌려주고 있기 때문에 이것이라는 것을 알고있다. char letterGrade 문자를 변경하려고 시도했습니다. [3]; 하지만이 내게 오류를 제공합니다 : int 형식에서 char [3] 형식을 지정할 때 호환되지 않는 형식. 누군가 내가 잘못 가고 있다는 것을 나에게 말해 줄 수 있다면 정말 기쁩니다.C 프로그램 float 번호를 문자 등급으로 변환
#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;
}
따라서 '입력'이 '79.5'이면 결과는 '' '' ''입니다. 어려운 수업입니다. 프로그래밍이 아니길 바래요. 나는''B + ''를 얻기 위해 @BLUEPIXY와 함께 갈 것입니다. – chux