究竟谁是高手中的高手
程序如下:调试时提示数据的类型转换有问题,可能会遗失数据,请各位高人帮找下BUG点,小第才疏学浅2小时了实在找不到问题点,请各位大侠们指点一二.3Q啦!#include "stdio.h"
void main()
{
int c,s;
float p,w,d,f;
sprintf("请输入货的单价,重量,距离:");
scanf("%f,%f,%d",&p,&w,&s);
if(s>=3000) c=12;
else c=s/250;
switch(c)
{
case 0:d=0;break;
case 1:d=2;break;
case 2:
case 3:d=5;break;
case 4:
case 5:
case 6:
case 7:d=8;break;
case 8:
case 9:
case 10:
case 11:d=10;break;
case 12:d=15;break;
}
f=p*w*s*(1-d/100.0);
printf("价格是:%10.2f\n",f);
}
----------------解决方案--------------------------------------------------------
你怎么发重贴了..你发的先前发的那张我不是回答你了么?
----------------解决方案--------------------------------------------------------
定义为float也不行啊,编译也通不过.真迷糊了.
----------------解决方案--------------------------------------------------------
、、、、、、、、、、、、、、就这个问题吗?
#include "stdio.h"
void main()
{
int c,s;
float p,w,d,f;
printf("请输入货的单价,重量,距离:");
scanf("%f,%f,%d",&p,&w,&s);/////////////输入的时候 注意格式如 5,5,10
if(s>=3000) c=12;
else c=s/250;
switch(c)
{
case 0:d=0;break;
case 1:d=2;break;
case 2:
case 3:d=5;break;
case 4:
case 5:
case 6:
case 7:d=8;break;
case 8:
case 9:
case 10:
case 11:d=10;break;
case 12:d=15;break;
}
f=p*w*s*(1-d/100.0);
printf("价格是:%10.2f\n",f);
}
----------------解决方案--------------------------------------------------------
这程序没什么问题了吧
----------------解决方案--------------------------------------------------------
不行啊,不知道是不是编译系统的问题,唉今天又睡不着了.
----------------解决方案--------------------------------------------------------
#include <stdio.h>
void main(void)
{
float c,s;
float p,w,d,f;
printf("请输入货的单价,重量,距离:");
scanf("%f,%f,%f",&p,&w,&s);/////////////输入的时候 注意格式如 5,5,10
if(s>=3000)
{
c=12;
}
else
{
c=s/250;
}
switch((int)c)
{
case 0:
d=0;break;
case 1:
d=2;break;
case 3:
d=5;break;
case 7:
d=8;break;
case 11:
d=10;break;
case 12:
d=15;break;
}
f=p*w*s*(1-d/100.0);
printf("价格是:%10.2f\n",f);
getchar();
getchar();
return 0;
}
----------------解决方案--------------------------------------------------------
f=p*w*s*(1-d/100.0);
左边是float右边是double,所以有这个warning,over.
----------------解决方案--------------------------------------------------------
谢谢楼上的大哥,刚才我可能是输入字符有问题,我重新输入了一次就可以通过编译了如下:
#include <stdio.h>
void main()
{ int c,s;
float p,w,d,f;
printf("请输入货的单价,重量,距离:");
scanf("%f,%f,%d",&p,&w,&s);
if(s>=3000) c=12;
else c=s/250;
switch(c)
{
case 0: d=0;break;
case 1: d=2;break;
case 3: d=5;break;
case 7: d=8;break;
case 11: d=10;break;
case 12: d=15;break;
}
f=p*w*s*(1-d/100.0);
printf("价格是:%10.2f\n",f);
}
----------------解决方案--------------------------------------------------------