好的,基本上,我正在尝试制作一个将KPH设为185并将其转换为MPH一直到0的程序。 (使用原型) 每小时公里转换为每小时英里数:
Kph Mph
185 115
180 112
175 109
... ...
10 6
5 3
0 0
不幸的是,我的转换有点偏离,有人可以留意一些有关原因的信息吗?
#include <stdio.h>
// Prototypes
double mph2kph(double); // convert Miles to KM
double kph2mph(double); // convert KM to Miles
int main()
{
int loop = 1;
double kph = 185; // kilometers per hour
double mph = 115; // miles per hour for computation
printf("Kilometers per hour converted to miles per hour: \n");
printf("Kph Mph\n"); // Display Header
while (loop == 1){
printf("%.2d %.2d \n", kph, kph2mph(kph));
break;
}
loop = 0;
}
//Other Functions:
double mph2kph(double x){
return x*1.61;
}
double kph2mph(double x){
return x*1.61;
}
输出=
Kilometers per hour converted to miles per hour:
Kph Mph
40325120 38090656
答案 0 :(得分:2)
您正在使用%d
来显示最终结果,该结果用于int
个变量。在您的情况下,当您使用double
变量时,您应该选择%f
或%lf
。
printf("%.2lf %.2lf \n", kph, kph2mph(kph));
另外,您的每小时公里数转换为英里/小时转换功能是错误的。你应该分而不是相乘。
double kph2mph(double x){
return x/1.61;
}
使用这些更正测试代码可以得到正确的结果:
Kilometers per hour converted to miles per hour:
Kph Mph
185.00 114.91
答案 1 :(得分:0)
我对您的程序进行了一些更改,以提供您想要的输出。某些其他用户已经识别出您的程序中的某些错误。与你的比较,并尝试学习。祝你好运!
#include <stdio.h>
// Prototypes
double mph2kph(double); // convert Miles to KM
double kph2mph(double); // convert KM to Miles
int main()
{
int loop = 1;
int kph = 185; // kilometers per hour
double mph = 115; // miles per hour for computation
printf("Kilometers per hour converted to miles per hour: \n");
printf("Kph Mph\n"); // Display Header
while (kph != -5){
printf("%d %.2lf \n", kph, kph2mph(kph));
getchar();
kph = kph - 5;
}
}
//Other Functions:
double mph2kph(double x){
return x*1.61;
}
double kph2mph(double x){
return x/1.61;
}