c - C 计算错误的距离
问题描述
我在 C 中编写了一些代码来将您的距离转换为其他距离单位,但它似乎混淆了数字并错误地计算了结果。
我使用的是 Windows 10 笔记本电脑,但我认为这并不重要,因为我使用了在线编译器 (GDB) 来编写代码。我真的不知道问题出在哪里。
#include <stdio.h>
int main ()
{
float distance;
char in_unit[20];
printf("Enter your distance:\n");
scanf("%f", &distance);
printf("Enter the length unit of your distance.(C=centimeters, Ft=feet, Kg=kilometers, In=inches, M=miles, Mtrs=meters)\n");
scanf("%s", in_unit);
if (in_unit == "Cm");
{
printf("Your distance in feet is:%f", distance/30.48);
printf("\nYour distance in kilometers is:%f", distance/100000);
printf("\nYour distance in inches is:%f", distance/2.54);
printf("\nYour distance in miles is:%f", distance/160934.4);
printf("\nYour distance in meters is:%f", distance/100);
}
if (in_unit == "Ft")
{
printf("Your distance in centimeters is:%f", distance*30.48);
printf("\nYour distance in kilometers is:%f", distance/3280.84);
printf("\nYour distance in inches is:%f", distance*12);
printf("\nYour distance in miles is:%f", distance/5280);
printf("\nYour distance in meters is:%f", distance/3.281);
}
if (in_unit == "Kg")
{
printf("Your distance in centimeters is:%f", distance * 100000);
printf("\nYour distance in feet is:%f", distance * 3280.84);
printf("\nYour distance in inches is:%f", distance * 39370.079);
printf("\nYour distance in miles is:%f", distance / 1.609);
printf("\nYour distance in meters is:%f", distance * 1000);
}
if (in_unit == "In")
{
printf("Your distance in centimeters is:%f", distance*2.54);
printf("\nYour distance in feet is:%f", distance/12);
printf("\nYour distance in kilometers is:%f", distance/39370.079);
printf("\nYour distance in miles is:%f", distance/63360);
printf("\nYour distance in meters is:%f", distance/39.37);
}
if (in_unit == "M")
{
printf("Your distance in centimeters is:%f", distance*160934.4);
printf("\nYour distance in feet is:%f", distance*5280);
printf("\nYour distance in kilometers is:%f", distance*1.609);
printf("\nYour distance in inches is:%f", distance*63360);
printf("\nYour distance in meters is:%f", distance*1609.344);
}
if (in_unit == "Mtrs")
{
printf("Your distance in centimeters is:%f", distance*100);
printf("\nYour distance in feet is:%f", distance*3.281);
printf("\nYour distance in kilometers is:%f", distance/1000);
printf("\nYour distance in inches is:%f", distance*39.37);
printf("\nYour distance in miles is:%f", distance/1609.344);
}
return 0;
}
例如,这是其中一次运行:
Enter your distance:
1
Enter the length unit of your distance. (C=centimeters, Ft=feet, Kg=kilometers, In=inches, M=miles, Mtrs=meters)
Kg
Your distance in feet is:0.032808
Your distance in kilometers is:0.000010
Your distance in inches is:0.393701
Your distance in miles is:0.000006
Your distance in meters is:0.010000
解决方案
推荐阅读
- path-finding - 在 Godot 中, get_simple_path() 返回的路径似乎被某些东西抵消了
- python - ValueError:训练 CNN 模型时无法将 NumPy 数组转换为张量(不支持的对象类型 numpy.ndarray)
- f# - F#如何向上转换泛型
- unity3d - 如何获取 2D Sprite 正面的光照信息?
- javascript - 在将一个对象值分配给另一个变量之后。它改变了我的旧对象
- python - 如何在 spotify 中创建可点击的 Windows 应用程序链接?
- mongodb - typeorm:migration create on New Project Does Not Recognize Entities - “未发现数据库架构更改 - 无法生成迁移。”
- java - 如何使用 PAX a 920 打印收据?
- r - 将R中的余弦距离函数转换为Rcpp
- python - Visual Studio 14 的离线安装程序,用于 pyodbc 包/离线 pyodbc 安装