#include <stdio.h>
int main()
{
int score = 87; //考试分数为87分
score=(int)score/10;
switch(score)
{
/*想想以下代码为什么用这种方式;
这种方式的好处?*/
case 10:
break;
case 9:
printf("等级A");
break;
case 8:
printf("等级B");
break; //这里是不是缺点什么?
case 7:
break;
case 6:
printf("等级C");
break; //这里是不是缺点什么?
default:
printf("等级D");
break;
}
return 0;
}
score本身就是int类型的,87/10原本应该是8.7但由于变量本身为int型所以8后面的.7会被自动舍弃所以不用使用强制转换,但是如果你的程序是
int a;
float b;
a=87;
b=(int)(a/10);/*用强制转换取整,此时b=8.000[a/10没有括号的话会先强制转换a为87.000,无法得到取整结果]*/
这个你能运行出来吗?我这个不会
int 不是整形是什么...