回 帖 发 新 帖 刷新版面

主题:谁能帮忙看看问题出在哪?

我的一个小程序,0 error,0 warning,但是点感叹号一执行,就出现窗口显示“遇到问题需要关闭,我们对此引起的不便表示抱歉”
这是段比较简单的C语言代码,就是根据公式f=p*w*s*(1-d),计算运费的。P为单价,w为重量,s为距离,d为折扣(不同距离对应不同折扣)。代码如下

请高手不吝赐教!

[code=c]
#include<stdio.h>
#include<math.h>
int main()
{
float w,s,d,f;
int c,P;
w=0;
s=0;
P=1000;
printf("we'd like to help you calculate the fee of transportantion\n");
printf("input weight(kg) and distance(km):");
scanf("%f,%f",w,s);
 
if(s>=3000)
{
    d=0.15f;
}
else
{
    c=(int)(s/250);
switch(c)
{
case 0:d=0;break;
case 2:d=0.05f;break;
case 4:d=0.08f;break;
case 5:d=0.08f;break;
case 6:d=0.08f;break;
case 7:d=0.08f;break;
case 8:d=0.10f;break;
case 9:d=0.10f;break;
case 10:d=0.10f;break;
case 11:d=0.10f;break;
}
}
f=P*s*w*(1-d);
printf("%f",f);
}
[/code]

回复列表 (共3个回复)

沙发


补充一下,我使用的是VC++ 6.0

板凳


scanf("%f,%f",&w,&s);
这一行改改就行了。然后你把main前面的 int改成void。

3 楼


    正确答案就如二楼的所示,scanf 的格式不要照抄printf 的结构,。。。

我来回复

您尚未登录,请登录后再回复。点此登录或注册