读书人

关于int和float解决办法

发布时间: 2012-04-03 12:38:19 作者: rapoo

关于int和float
我是一个菜鸟,最近刚刚开始学c语言,遇到了关于int和float的问题,不是很理解,所以请求讲解,这是最近遇到的一个问题,程序是这样的
#include<stdio.h>
void main()
{ int score;
printf("Input a score of the student: ");
scanf("%d",&score);
if(score<0||score>100)
printf("Input error!\n");
else
switch(score/10)
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
printf("fail.\n");
break;
case 6:
case 7:
printf("pass.\n");
break;
case 8:
printf("good\n");
break;
case 9:
printf("excellent\n");
break;
defaulu:
printf("excellent.\n");
}
}
我想问的是,里面的score变量是int类型,如果我想改成float类型,那么下面应该怎么修改?

[解决办法]

C/C++ code
#include<stdio.h>void main(){ int score;//此处改为: float score;printf("Input a score of the student: ");scanf("%d",&score);if(score<0||score>100)printf("Input error!\n");elseswitch(score/10)//此处改为: switch(((int)score)/10){case 0:case 1:case 2:case 3:case 4:case 5:printf("fail.\n");break;case 6:case 7:printf("pass.\n");break;case 8:printf("good\n");break;case 9:printf("excellent\n");break;defaulu:printf("excellent.\n");}}
[解决办法]
把 switch(score/10)改成switch((int)score / 10)强制转换应该可以吧。
[解决办法]
只能针对基本数据类型使用switch,这些类型包括int、char等。对于其他类型,则必须使用if语句。case标签必须是常量表达式(constantExpression),如42或者"42"。如果需要在运行时计算case标签的值,必须使用if语句。

读书人网 >C语言

热点推荐