下面的问题如何解

xiao_xiao_zi 2009-09-21 11:04:16
判断学生成绩的优劣。用户输入分数,小于60分不及格,60 = < 并且 < 75及格, 75 = < 并且 < 90良好,90 <= 并且
<= 100 优秀。 要求程序中不得出现if、else、while、for、switch关健字,不得使用任何判断、循环语句、不得嵌入汇编

请给个思路!?
...全文
112 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
aozhi 2009-09-21
  • 打赏
  • 举报
回复
自评一下。(胡说八道,不要脸一次)
回答最快1楼
效率最高4楼
可维护性最好8楼
强壮性最好9楼
bobo45123 2009-09-21
  • 打赏
  • 举报
回复
int main()
{
float score = 0;
int num = 0;
int info[][10] = {"不及格","不及格","不及格","不及格","及格","良好","优秀"};

printf("please input the score:");
scanf("%f", score);

num = (int)float/15;
printf("the score is:%s\n", info[num]);

return 0;
}

不过对于成绩的输入数据的合法性无法进行处理
aozhi 2009-09-21
  • 打赏
  • 举报
回复
static char band[4][]={"不及格","及格","良好","优秀"};

int main()
{
int mark;
int i=0;

scanf("%d",&mark);
i=mark/60+mark/75+mark/90;
printf(band[i]);
}
love_route 2009-09-21
  • 打赏
  • 举报
回复
1楼的方法比较简洁

aozhi 2009-09-21
  • 打赏
  • 举报
回复
哦,不能判断。
aozhi 2009-09-21
  • 打赏
  • 举报
回复
main()
{
int mark;
scanf("%d",&mark);
printf(mark<60?"不及格":(mark<75?"及格":(mark<90?"良好":"优秀")));
}
mstlq 2009-09-21
  • 打赏
  • 举报
回复
好无聊……

#include <stdio.h>
#include <stdlib.h>

char rank[4][10]={"不及格","及格","良好","优秀"};
unsigned char level[101]= {0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
3,3,3,3,3,3,3,3,3,3,
3};

int main()
{
int mark;
scanf("%d",&mark);
puts(rank[level[mark]]);
}
brookmill 2009-09-21
  • 打赏
  • 举报
回复
唉,又错了。应该是
char * grade[] =
brookmill 2009-09-21
  • 打赏
  • 举报
回复
char grade[] =
{
"不及格",
"不及格",
"不及格",
"不及格",
"及格",
"良好",
"优秀",
};
brookmill 2009-09-21
  • 打赏
  • 举报
回复
自己写一个grade[]数组
printf("%s\n", grade[score / 15]);

69,372

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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