C语言,输入百分制成绩,输出对应等级

#include<stdio.h>
void main()
{
int a;
printf("请输入成绩:\n");
scanf("%d",&a);
switch(a/10)
{
case 10:
case 9:printf("优秀\n");break;
case 8:printf("良好\n");break;
case 7:printf("中等\n");break;
case 6:printf("及格\n");break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:printf("不及格\n");break;
default:printf("输入错误\n");
}
}
程序如上,但是思考觉得成绩不一定都是整数,所以把变量类型定义为浮点小数,SCANF用%f,结果发现出错,这是什么原因?如果一定要输入实数值,这个程序怎么改?
谢谢~

a是int 类型前面应该写float s;int a;

scanf("%f",&s);a=int s;//使实数类型

float a; printf("请输入成绩:\n")

switch((int)(a/10+0.05))case 

nclude<stdio.h>int main() char score;

printf("Please input your score(0~100):\n");scanf("%c",&score);

printf("Your grade:");switch(score)

case'9':printf("A\n");break;case'8':printf("B\n");break;case'7':printf("C\n");break;case'6':printf("D\n");break;default:printf("E\n");

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-25
a 是int 类型
前面应该写
float s;
int a;
scanf("%f",&s);
a=int s;//使实数类型 转换成整形
就行了本回答被网友采纳
第2个回答  2011-08-13
#include<stdio.h>
void main()
{
float a;
printf("请输入成绩:\n");
scanf("%f",&a);
switch((int)(a/10+0.05))
{
case 10:
case 9:printf("优秀\n");break;
case 8:printf("良好\n");break;
case 7:printf("中等\n");break;
case 6:printf("及格\n");break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:printf("不及格\n");break;
default:printf("输入错误\n");
}

}本回答被提问者采纳
相似回答