在C中分配一封信
发布时间:2020-12-16 10:41:23 所属栏目:百科 来源:网络整理
导读:我正在尝试根据学生总分来分配一个字母等级.然后尝试打印该字母等级,但我打印的是null.这是我正在使用的代码: int FinalScore; FinalScore = q1w+q2w+q3w+q4w+midiw+midiiw+finalw;// Determine the letter Gradeif (FinalScore=0 FinalScore = 59){ char L
我正在尝试根据学生总分来分配一个字母等级.然后尝试打印该字母等级,但我打印的是null.这是我正在使用的代码:
int FinalScore; FinalScore = q1w+q2w+q3w+q4w+midiw+midiiw+finalw; // Determine the letter Grade if (FinalScore>=0 && FinalScore <= 59) { char LetterGrade[20]; strcpy(LetterGrade,"F"); } if(FinalScore>=60 && FinalScore <=69) { char LetterGrade[20]; strcpy(LetterGrade,"D"); } if(FinalScore>=70 && FinalScore <=79) { char LetterGrade[20]; strcpy(LetterGrade,"C"); } if(FinalScore>=80 && FinalScore <=89) { char LetterGrade[20]; strcpy(LetterGrade,"B"); } if(FinalScore>=90 ) { char LetterGrade[20]; strcpy(LetterGrade,"A"); } printf("%s",&LetterGrade); 任何想法为什么我得到null?谢谢. 解决方法
我没有看到任何创建字符串(char [20])的实用程序,而不是简单的char,因为它最终只会有一个字符.我写了
code似乎工作得很好.
您的代码的问题在于,如果在范围内声明LetterGrade,那么,当您尝试打印它时,它已经超出了范围,正如我在评论中提到的那样. 很重要!正如@Jite,在他的评论中提到的,请注意printf中的%c格式说明符而不是%s. 我希望这符合你的需求. #include <stdio.h> int main() { int FinalScore = 60; char LetterGrade; // Determine the letter Grade if(FinalScore>=0 && FinalScore <= 59) LetterGrade = 'F'; else if(FinalScore>=60 && FinalScore <=69) LetterGrade = 'D'; else if(FinalScore>=70 && FinalScore <=79) LetterGrade = 'C'; else if(FinalScore>=80 && FinalScore <=89) LetterGrade = 'B'; else LetterGrade = 'A'; printf("%c",LetterGrade); return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |