centrifugeSIW
2017-08-24 19:55
难道不应该有小数吗?哪里出了问题啊?
不能是%d , 得是 %f
请问你第三行的{ 在哪结束的?
貌似你这个时间有点问题,因为题目刚好不在23-次日5点,你的时间那里,貌似是没法同事满足那三个条件的
这个是稍微改进了一下的。
#include <stdio.h>
int main()
{
int Morning,Night,distance;
float Pay,Pay1,Pay2,Rate1,Rate2;
printf("请分别输入距离,早晨时间,晚上时间(24小时制)\n");
scanf("%d",&distance);
scanf("%d%d",&Morning,&Night);
if(distance<=3)
{
Pay = (13+1)*2;
}
else
{
if((Morning>=23&&Morning<=24)||(Morning>=0&&Morning<5))
{
Rate1=1.2;
Pay1=((13+(distance-3)*2.3)*Rate1)+1;
}
else Pay1=((13+(distance-3)*2.3)+1);
if((Night>=23&&Night<=24)||(Night>=0&&Night<=5))
{
Rate2=1.2;
Pay2=((13+(distance-3)*2.3)*Rate2)+1;
}
else Pay2=((13+(distance-3)*2.3))+1;
Pay=Pay1+Pay2;
}
printf("小明一天打车%f元,早上%d点打的,晚上%d点打的",Pay,Morning,Night);
return 0;
}
#include <stdio.h>
int main()
{
int Morning,Night,distance,Rate1,Rate2;
float Pay,Pay1,Pay2;
distance = 12;
Morning = 9,Night = 6+12;
if(distance<=3)
{
Pay = (13+1)*2;
}
else
{
if(Morning>=23&&Morning<=24||(Morning>=0&&Morning<=5))
{
Rate1=1.2;
Pay1=((13+(distance-3)*2.3)*Rate1)+1;
}
else Pay1=((13+(distance-3)*2.3)+1);
if(Night>=23&&Night<=24||(Night>=0&&Night<=5))
{
Rate2=1.2;
Pay1=((13+(distance-3)*2.3)*Rate2)+1;
}
else Pay2=((13+(distance-3)*2.3))+1;
}
printf("小明一天打车%f元",Pay1+Pay2);
return 0;
C语言入门
927003 学习 · 21533 问题
相似问题