岁月 发表于 2014-11-1 13:55:33

我的代码那里错了

#include <stdio.h>
void main()
{
double s,p,w,d,f;
printf("输入运费,货物重量,距离");
scanf("%f%f%f",&p,&w,&s);
switch(s){
case '1':
d=2;
break;
}
printf("%d",d);
}

显示: error C2050: switch expression not integral
执行 cl.exe 时出错.

岁月 发表于 2014-11-1 14:07:15

好吧不能是double类型的

fireofsun 发表于 2014-11-1 14:35:50

switch只能是int,char,byte,long,枚举类型的,话说楼主自问自答很嗨啊

岁月 发表于 2014-11-1 19:52:47

fireofsun 发表于 2014-11-1 14:35
switch只能是int,char,byte,long,枚举类型的,话说楼主自问自答很嗨啊

.......是吗

风之残月 发表于 2014-11-8 21:17:25

switch() 里只能是整型数据,不能是浮点型,可以是long, int, char等等
你这里可以使用类型转换,如 switch ((long)s)

要不一样 发表于 2014-11-12 08:08:25

风之残月 发表于 2014-11-8 21:17
switch() 里只能是整型数据,不能是浮点型,可以是long, int, char等等
你这里可以使用类型转换,如 switc ...

除了上面的错误,还有就是你使用的是长双精度%f应改为%lf
页: [1]
查看完整版本: 我的代码那里错了