c程序函数的调用

来源:百度知道 编辑:UC知道 时间:2024/05/10 16:45:19
这是一个求车费的程序,作用为:输入车型及路程,输出应付车费。但程序出错,列如输入 车型为:1;路程为:7;输出为:0.7;明显出错,请高手解答下,我想了好几天啊,实在不找不出出错原因。感谢
#include<stdio.h>

float chefei(int i,int j,float k)
{float s1;
s1=i+(j-3)*k;
return s1;
}

float pan(int i,int j)
{float s2;
if(i==1)
{s2=chefei(7,j,2.1);}
else if(i==2)
{s2=chefei(8,j,2.4);}
else
{s2=chefei(9,j,2.7);}
return s2;
}

main()
{int i;
float j,s;
printf("请输入车型:\n");
printf("1:夏利\n");
printf("2:富康\n");
printf("3:桑塔纳\n");
scanf("%d",&i);
printf("请输入路程:\n");
scanf("%d",&j);
s=pan(i,j);
printf("应付车费为:");
printf("%4.1f\n",s);
}
数据的转换,软件是可以兼容的,问题不在数据上。

main()
{int i;
float j,s;
printf("请输入车型:\n");
printf("1:夏利\n");
printf("2:富康\n");
printf("3:桑塔纳\n");
scanf("%d",&i);
printf("请输入路程:\n");
scanf("%d",&j);
s=pan(i,j);
printf("应付车费为:");
printf("%4.1f\n",s);
}

在你的主函数中,定义了 j 为float型,而在获取输入值时,用int %d 这样,得到的输入值是错误的,所以出错。
float j; 改为 int j ;
应该就对了!