在C中分配一封信

在C中分配一封信,第1张

概述我正在尝试根据学生总分来分配一个字母等级.然后尝试打印该字母等级,但我打印的是null.这是我正在使用的代码: int FinalScore; FinalScore = q1w+q2w+q3w+q4w+midiw+midiiw+finalw;// Determine the letter Gradeif (FinalScore>=0 && FinalScore <= 59){ 我正在尝试根据学生总分来分配一个字母等级.然后尝试打印该字母等级,但我打印的是null.这是我正在使用的代码:

int Finalscore;    Finalscore = q1w+q2w+q3w+q4w+mIDiw+mIDiiw+finalw;// Determine the letter Gradeif (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;}
总结

以上是内存溢出为你收集整理的在C中分配一封信全部内容,希望文章能够帮你解决在C中分配一封信所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1222058.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存