问题不知出在哪里
程序代码:#include<stdio.h>
int main()
{
int c,s;
float p,w,d,f;
printf("please enter price,weight,skm:");
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("freight is %10.2ld\n",f);
return 0;
}这个代码运行后是错误的下面这个正确的
程序代码:#include <stdio.h>
void main ( )
{
int c,s;
float p,w,d,f;
printf("please enter price,weight,distance:");
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("freight=%10.2f\n",f);
}输入100,20,300 正确结果是588000.00为什么第一个代码会算不出来?









