#include<stdio.h>
void main()
{
    float sum(int h,int ODO);
    int c,i,xh,xODO;
    float zsum=0,s;
    printf("请输入做了几次车:\n");
    scanf("%d",&c);
    c++;
    for(i=1;i<c;i++)
    {
        
        printf("请输入第%d次的时间和路程:",i);
        scanf("%d %d",&xh,&xODO);
        s=sum(xh,xODO);
        zsum=zsum+s;
        
    }
    printf("总共花了%d",zsum);
}
float sum(int h,int ODO)
{ 
    float PI=2.3,ZF=0.2;
    int FF=13,BS=1;
    float he;
    if(h>=5&&h<23)
    {
        if(ODO>3)
        {
            he=(ODO-3)*PI+BS+FF;
        }
        else
        {
            he=BS+FF;
        }    
    }
    
    
        if(h>23&&h<=24||h>0&&h<5)
        {
            if(ODO>3)
            {
                he=(ODO-3)*(1+ZF)*PI+BS+FF;
            }
            else
            {
                he=BS+FF;
            }
            
        }
    return he;
}
错因:main函数里面最后那个printf函数里,应该是%f,而不是%d。
#include <stdio.h>
int Charge(int t,int m)
{
float sum; //打车费
const float p = 2.3; //单价
const float q = 13; //起步价
if(m <= 3) //判断距离m<=3时的2种情况。
{
if(5<t || t<23)
{ sum =q ;
sum ++;
return sum;
}
else
{ sum = q + m*0.2*p;
sum ++;
return sum;
}
}
if(m >3) //判断距离m>3时的2种情况。
{
if(5<t || t<23)
{ sum =q + p * (m-3);
sum ++;
return sum;
}
else
{ sum = q + p * (m-3) + p * 0.2 * m;
sum ++;
return sum;
}
}
}
int main()
{
int x = 9;
int y = 6;
int z = 12;
float am = Charge(x,z);
float pm = Charge(y,z);
float money = am + pm;
printf("小明每天的打车的总费用是:%.2f\n",money);
return 0;
}
这是写的,上面有注视,理解了倒不是很难,希望能帮助你!!!
再没得到你的回答之前,我用了两天找到了这个错误