一道C语言编程题:(查错) 请大家帮忙瞅瞅

来源:百度知道 编辑:UC知道 时间:2024/05/11 23:57:39
/* Note:Your choice is C IDE */
#include "stdio.h"
main()
{
int c,s;
float pri,wei,dis,fee; /*pri是基本的费用;wei是总重量;dis是折扣;
fee是总的运费;而s是路程;c是变量*/
scanf("%f,%f,%d",&pri,&wei,&s);
if(s>=3000) c=12;
else c=s/250;
switch(c)
{
case 0: dis=0;break;
case 1: dis=2;break;
case 2:
case 3: dis=5;break;
case 4:
case 5:
case 6:
case 7: dis=8;break;
case 8:
case 9:
case 10:
case 11: dis=10;break;
case 12: dis=15;break;
}
fee=pri*wei*s*(1-dis/100.0);
printf("fee=%15.4f",fee);
}
为什么运行的结果是:10 10 1000
"fee= -NAN" 呢

4楼的
int 分long 和short ,默认下,int 是long 型,完
全可以超过265

为case 0: {dis=0;break;}
试一下

scanf("%f,%f,%d",&pri,&wei,&s);
把中间逗号去掉,scanf函数本身不能显示提示串,

把s 定义成flaot

s 的变量为 float;改为%f
还用scanf语句中不能含 有逗号.
你用的是多少位机,数值长度是否超长.

是s的类型吧,将她改为长整型,int类型不能超过256哦你输入的数大了把
c看看用不用改!!!