慕粉4367945
2016-12-15 21:12
#include <stdio.h>
int main()
{
int score = 87; //考试分数为87分
switch(score)
{
/*想想以下代码为什么用这种方式;
这种方式的好处?*/
case 100:
case 90:
printf("等级A");
break;
case 90:
case 80:
printf("等级B");
break; //这里是不是缺点什么?
case 70:
case 60:
printf("等级C");
break; //这里是不是缺点什么?
default:
printf("等级D");
break;
}
return 0;
}
有两点:
第一点是:除法运算符“/”是双目运算符,具有左结合性。
如果参与运算量均为整型时,结果也为整型,舍去小数。
如果运算量中有一个是实型(实型变量分为单精度(float),双精度(double)和长双精度(long double)型),则结果为双精度实型。
第二点是:自动转换。
发生在不同数据类型运算时,在编译的时候自动完成。
注意:字节小的可以向字节大的自动转换,但字节大的不能向字节小的自动转换
#include <stdio.h>
int main()
{
int score = 87; //考试分数为87分
int a = 10;
float b = 10.0;
double c = 10.000000;
printf("%d\n",score / a);
printf("%f\n",score / b);
printf("%f\n",score / c);
printf("%d\n",score / b); // 错误结果
printf("%d\n",score / c); // 错误结果
return 0;
}
回复 慕粉4367945:本门课程2章8、9节就讲。
#include <stdio.h>
int main()
{
char c = 'a';
// 自动类型转换
int n = c; //将c赋值给n
float f = c; //将c赋值给f
double d = c; //将c赋值给d
int x = d; // 数据精度丢失 warning: converting to `int' from `double'
// 强制类型转换
int y = (int)d;
printf("%d\n",n);
printf("%f\n",f);
printf("%lf\n",d);
printf("%d\n",x);
printf("%d\n",y);
return 0;
}
#include <stdio.h>
int main()
{
int score = 87,a; //考试分数为87分
a=score/=10;
switch(a)
{
case 10:
case 9:
printf("等级A"); break;
break;
case 8:
printf("等级B"); break;
case 7:
case 6:
printf("等级C"); break;
default:
printf("等级D");break;
}
return 0;
}
你这里没有对应的case 87:与之对应输出,如果是switch(a),那下面会输出的case就是对应的 case a://注意这里a是整数要用int定义
C语言入门
928204 学习 · 21545 问题
相似问题