求指点

求生猿 2019-05-20 01:03:35
#include<stdio.h> int main() { int score, grade; scanf("%d",&score); grade=score/10; switch(grade) {    default:printf("E\n");break;     case10:      case9:printf("A\n");break;      case8:printf("B\n");break;      case7:printf("C\n");break;      case6:printf("D\n");break;      } }代码检查(×):(13分)if ( <fs> ) <fs> else
...全文
27847 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
s_father 2019-05-21
  • 打赏
  • 举报
回复
引用 3 楼 袁君元 的回复:
[quote=引用 6 楼 weixin_45096463 的回复:]
[quote=引用 1 楼 袁君元的回复:]程序有什么问题?

default放在后边还是这个错误。。。[/quote]
不好意思,之前那个回答错了,其实你这个程序存在以下连个问题:
1、你的case和后面的数字之间应该加一个空格;如果数字和case写在一起,就检测不到数字,所以无论你输入多少,结果都是E。和default在前面还是后面没有关系。
2、你的main函数最后缺少一个return 0;
附上修改后的代码:

#include<stdio.h>
int main() {
int score, grade;
scanf("%d",&score);
grade=score/10;
switch(grade) {
default:
printf("E\n");
break;
case 10://case和数字之间有个空格
case 9:
printf("A\n");
break;
case 8:
printf("B\n");
break;
case 7:
printf("C\n");
break;
case 6:
printf("D\n");
break;

}
return 0;//应该有个return
}
[/quote]一直以为switch是自顶向下的,看了你这个才知道default执行顺序和位置无关,受教了,感谢
CaptainXue 2019-05-21
  • 打赏
  • 举报
回复
引用 6 楼 weixin_45096463 的回复:
[quote=引用 1 楼 袁君元的回复:]程序有什么问题?

default放在后边还是这个错误。。。[/quote]
不好意思,之前那个回答错了,其实你这个程序存在以下连个问题:
1、你的case和后面的数字之间应该加一个空格;如果数字和case写在一起,就检测不到数字,所以无论你输入多少,结果都是E。和default在前面还是后面没有关系。
2、你的main函数最后缺少一个return 0;
附上修改后的代码:

#include<stdio.h>
int main() {
int score, grade;
scanf("%d",&score);
grade=score/10;
switch(grade) {
default:
printf("E\n");
break;
case 10://case和数字之间有个空格
case 9:
printf("A\n");
break;
case 8:
printf("B\n");
break;
case 7:
printf("C\n");
break;
case 6:
printf("D\n");
break;

}
return 0;//应该有个return
}
求生猿 2019-05-21
  • 打赏
  • 举报
回复
引用 1 楼 袁君元的回复:
程序有什么问题?
default放在后边还是这个错误。。。
求生猿 2019-05-21
  • 打赏
  • 举报
回复
引用 2 楼 s_father的回复:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main()
{
int score, grade;
scanf("%d", &score);
grade = score / 10;
switch (grade)
{
case10:
case9:
printf("A\n"); break;
case8:
printf("B\n"); break;
case7:
printf("C\n"); break;
case6:
printf("D\n"); break;
default:
printf("E\n"); break;
}
return 0;
}
default要放在后面,不然怎样都是输出E
放在后边结果正确 但是显示代码错误 if(<fs>)<fs>else
CaptainXue 2019-05-21
  • 打赏
  • 举报
回复
引用 8 楼 s_father 的回复:
[quote=引用 3 楼 袁君元 的回复:]
[quote=引用 6 楼 weixin_45096463 的回复:]
[quote=引用 1 楼 袁君元的回复:]程序有什么问题?

default放在后边还是这个错误。。。[/quote]
不好意思,之前那个回答错了,其实你这个程序存在以下连个问题:
1、你的case和后面的数字之间应该加一个空格;如果数字和case写在一起,就检测不到数字,所以无论你输入多少,结果都是E。和default在前面还是后面没有关系。
2、你的main函数最后缺少一个return 0;
附上修改后的代码:

#include<stdio.h>
int main() {
int score, grade;
scanf("%d",&score);
grade=score/10;
switch(grade) {
default:
printf("E\n");
break;
case 10://case和数字之间有个空格
case 9:
printf("A\n");
break;
case 8:
printf("B\n");
break;
case 7:
printf("C\n");
break;
case 6:
printf("D\n");
break;

}
return 0;//应该有个return
}
[/quote]一直以为switch是自顶向下的,看了你这个才知道default执行顺序和位置无关,受教了,感谢[/quote]
CaptainXue 2019-05-20
  • 打赏
  • 举报
回复
default写在最后面
周末ZhouMo 2019-05-20
  • 打赏
  • 举报
回复
case和数字之间加个空格试试
s_father 2019-05-20
  • 打赏
  • 举报
回复
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main()
{
int score, grade;
scanf("%d", &score);
grade = score / 10;
switch (grade)
{
case10:
case9:
printf("A\n"); break;
case8:
printf("B\n"); break;
case7:
printf("C\n"); break;
case6:
printf("D\n"); break;
default:
printf("E\n"); break;
}
return 0;
}
default要放在后面,不然怎样都是输出E
CaptainXue 2019-05-20
  • 打赏
  • 举报
回复
程序有什么问题?

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧