[求助]C语言初学遇到障碍,麻烦好心坛友们看看
下面的成绩查询代码是按老师要求写出来的:[color=Blue]在90到100之间,输出优秀
在80到90之间,输出良好
在70到80之间,输出一般
在60到70之间,输出及格
60以下输出不及格。
如果输入的成绩在100以上或者0分以下,则输出错误
如果在0~100之间,再根据以上条件输出。[/color]
老师说还能改进,他只说再加上点东西能使这个程序的运算就更简单了,或者说是算法更快了...兄弟们来帮我看看
我现在只学些简单的C语言,例如[color=Red]%d %f %lf %c或%s printf scanf &&||! <>==!= a++ ++a[/color]
根据这些,怎么改进....[tk09]
#include <stdio.h>
void main()
{
int a=0;
scanf("%d",&a);
if(a<=100&&a>90)
{
printf("优秀\n");
}
if(a<90&&a>=80)
{
printf("良好\n");
}
if(a<80&&a>=70)
{
printf("一般\n");
}
if(a<70&&a>=60)
{
printf("及格\n");
}
if(a<60&&a>0)
{
printf("不及格\n");
}
if(a<0||a>100)
{
printf("错误\n");
}
}
然后在else当中把输入的分数进行一个除以10的整除
然后用选择语句switch语句做分数段的选择就行了.
选择语句应该学过吧 成绩是按概率分步的 用switch语句吧。 县判断是否错误,再用switch
switch(a/10){
case 10:
case 9:printf("优秀\n"); break;
case 8:printf("良好\n"); break;
。。。
不过不推荐switch 编译出的代码效率不如if else
问题解决了,没有诸位说的那么高深..........
老师给出答案是:因为目前我们只学习了if,没学else和swith所以在if里再次套用if....那样算法就更快了不过谢谢各位的帮助,虽然我目前看不太懂你们说的.不过相信有一天我会和你们一样的,成为编程高手,谢谢大家
页:
[1]
