if嵌套语句中分等级能用双引号吗?

if嵌套语句中分等级能用双引号吗?

问题描述:

想问下各位大佬们if嵌套语句里改成"E"系统会提示错误#include<stdio.h>
int main()
{
int score;
char grade;
scanf("%d",&score);
if(score<60)
grade='E';
else
if(score<70)
grade='D';
else
if(score<80)
grade='C';
else
if(score<90)
grade='B';
else
grade='A';
printf("The grade is:%c\n",grade);
return 0;
}

grade是char类型,不能用双引号
如果grade改成string类型,就可以用双引号了。
std::string grade;
需要包含头文件string.h

“E”是字符串啊,你的grade是个char,里面只能存字符,不能存字符串,跟if没关系
双引号代表字符串,字符串是以\0作为结尾的,所以除非你是个空字符串,否则一个字符是存不下的。

不懂为什么改成grade"E"是错误的,是因为我定义将grade定义为char类型的吗?

不能啊,grade是char类型,双引号的"E"就是字符串了,类型不对

在 C 语言中单引号代表字符 char str = 'a';
双引号代表字符串 char str[] = "你好"

grade 是 char 类型,所以只能使用单引号

有用望采纳

grade是字符型的,不能存”E”,”E”是字符串类型