麻烦大神帮我看下代码
#include <stdio.h>void main()
{
int s;
float p,w,d,f;
f=p*w*s*(1-d);
printf(" 请依次输入基本运费P、货物重w、距离s\n");
scanf("&f,&f,&d",p,w,s);
if (s<250)
d==0;
else if (s>=250||s<500)
d==0.02;
else if (s>=500||s<1000)
d==0.05;
else if (s>=1000||s<2000)
d==0.08;
else if (s>=2000||s<3000)
d==0.10;
else if (s>=3000)
d==0.15;
else
printf("您输入的数值有误,请重新输入");
printf("%f=%f*%f*%d*(1-%f)\n",f,p,w,s,d);
}
可以运行,但是我输入数字后跟想象的不一样啊,就像下面这样,反复看了好多遍也没看出来到底问题出在哪,请大神帮我看下
请依次输入基本运费P、货物重w、距离s
5.0,5.0,5
-1063382215022128900000000000000000.000000=-107374176.000000*-107374176.000000*-858993460*(1--107374176.000000)
Press any key to continue scanf("&f,&f,&d",p,w,s);这里错了,应该是scanf("%f,%f,%f",&p,&w,&s); 。。。。。。。。。。。。
#include <stdio.h>
int main()
{
int s = 0;
float p = 0.0f;
float w = 0.0f;
float d = 0.0f;
float f = 0.0f;
printf(" 请依次输入基本运费P、货物重w、距离s\n");
scanf("%f,%f,%d",&p,&w,&s);
f=p*w*s*(1-d);
if (s<250)
d=0;
else if (s>=250||s<500)
d=0.02;
else if (s>=500||s<1000)
d=0.05;
else if (s>=1000||s<2000)
d=0.08;
else if (s>=2000||s<3000)
d=0.10;
else if (s>=3000)
d=0.15;
else
printf("您输入的数值有误,请重新输入");
printf("%f=%f*%f*%d*(1-%f)\n",f,p,w,s,d);
return 0;
}
代码第9行,应该是这样:
scanf("%f,%f,%d", &p, &w, &s);
另:第一次看到你这scanf的用法我都懵了,毕竟好久没写C代码了,看来感觉没错。{:10_245:} 你这错误也是没谁了
{:9_232:} 丶忘却的年少o 发表于 2017-10-14 11:17
scanf("&f,&f,&d",p,w,s);这里错了,应该是scanf("%f,%f,%f",&p,&w,&s);
谢谢,感觉好丢人的说,但是我的代码把这个改掉了也有错误,请问还有哪出了问题 duzunchong 发表于 2017-10-15 13:03
谢谢,感觉好丢人的说,但是我的代码把这个改掉了也有错误,请问还有哪出了问题
问题在于你的if判断这里,你要d为一个值,但是你写的是关系判断,==是判断相等,=才是赋值。 橙C 发表于 2017-10-14 11:19
。。。。。。。。。。。。
谢谢,我按照您的代码执行没有一点问题,想问下您除了scanf这一行的问题,为什么一定要给这几个变量一个控制字符? 还有什么f的计算公式要写在输入那行的下面? 丶忘却的年少o 发表于 2017-10-15 13:13
问题在于你的if判断这里,你要d为一个值,但是你写的是关系判断,==是判断相等,=才是赋值。
感觉这几行代码出了不止一个两个问题,还是谢谢您 newu 发表于 2017-10-14 11:19
代码第9行,应该是这样:
另:第一次看到你这scanf的用法我都懵了,毕竟好久没写C代码了,看来感觉没错 ...
谢谢,这么弱智的问题也犯了{:10_243:} 谢坡坡 发表于 2017-10-14 21:22
你这错误也是没谁了
毕竟刚学,出了好多问题,偶然写一个没有问题的简单代码能开心好一会
页:
[1]