加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在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;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读