#include <stdlib.h>
#include <math.h>
int main(void)
{
float A,y
int x
printf("请输入行车里滚肆程:\n")
scanf("%f",&A)
x = (int)A+1
if(x<3) printf("大毕轿应付车款 10 元.")
if(3<=x &&x<8) y=10+1.6*(x-3)
printf("应数虚付车款 %.2f 元",y)
if(8 <= x) y=10+2.2*(x-3)
printf("应付车款 %.2f 元",y)
return 0
}
帮你编译过了,你看下
1 刚编写完的,徒手编写,没在编译器上跑,你跑下试试吧。2 我对超8公里的理解是 起步3公里+超过的总共是8公里,如果理解的不对,把第1个函数第二和第败培3个语句 if里的8改成11就可以了。
3 我对输入的公里 和 分钟都定义成整型了,比如输入3.2,默认为3公里或者3分钟,因为我印象里出租车跑不够整公里,就不加钱。如果你那里要求跑3.2公里就收3.2公里的钱的话,把主函数里对l和d 的定义改下,改double,子函数也得稍做变化,不过我觉得应该不用改,反正真实的出租车就是这么收费的。
4 下面是代码:
有点长,不过附带判断输入数据的功能,比如输入负数,字母什么的,都没关系,所以长了点
#include <stdio.h>
int main()
{
int d,l,q
double q1,q2,Q,x
printf("请输入您行驶里程(公里):\n")
for(){
scanf("%d",&l)
scanf("%*[^\n]")
scanf("%*c")
if(l<=0) {printf("您输入的有误,请重新输入您的行驶里程察返唯(公里):\n")}
else break}
printf("请输入您等待的时间(分钟):\n")
for(){
scanf("%d",&d)
scanf("%*[^\n]")
scanf("%*c")
if(d<0) {printf("您输入的有误,请重新输入您的等待时间(分钟):\n")}
else break}
q1=f1(l)
q2=f2(d)
Q=q1+q2
q=(int)Q
x=Q-q
if(x>=0.5) q=q+1
printf("请您支世氏付 %d(元)车费\n",q)
return 0
}
double f1(int l)
{
double q
if(l<=3){
return 6.0}
else if(l<=8){
q=(l-3)*1.8+6
return q}
else{
q=(l-8)*2.7+5*1.8+6
return q}
}
double f2(int d)
{
double q
int l
l=d/5
q=l*1.8
return q
}
“每5分钟按1公里租费”这里的1公里租费你没有说清,码卜我按照2元每公里算的孝昌,程序如下:#include
"stdio.h"
int
main(int
argc,
char*
argv[])
{
int
length,time,sum
start:
printf("请输入行驶里程(公里):")
scanf("%d",&length)
printf("请输入等待时间(分钟):")
scanf("%d",&time)
if(length<0||time<0)
{
printf("行驶里程和等待时间不能为负数!\n")
goto
start
}
else
if(length<=3)
{
sum=10
}
else
if(length<=13)
{
sum=10+(length-3)*2
}
else
sum=10+10*2+(length-13)*3
sum=sum+(int)(time*(0.4))
//等待的每分钟0.4元
printf("乘客迟慎穗应支付的车费(元):\t%d\n",sum)
return
0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)