我的fahrenheit-celcius程序会忽略我的if-else语句,并在每次运行该程序时将值更改为0
My fahrenheit-celcius program ignores my if-else statement and changes value to 0 everytime I run the program
我的if-else语句似乎不起作用,有人有什么想法吗?
所以我用C++创建了这个简单的华氏摄氏度转换控制台应用程序。该程序使用一个简单的if-else语句来确定他们想要的转换,华氏摄氏度还是华氏摄氏度。
然而,该代码目前不起作用,它会立即转换华氏摄氏度,并完全忽略我用来获取用户输入的std::cin
。相反,每次我运行程序时,他们都会输入0的值。
#include<iostream>
using namespace std;
int main() {
unsigned short int fahrenheit{}, celsius{};
char unit;
cout << "Choose what unit you want to start with" << endl;
cin >> unit;
if (unit == 'c') {
cout << "Enter the temperature in Celsius : " << endl;
cin >> celsius;
fahrenheit = (celsius * 9.0) / 5.0 + 32;
cout << "The temperature in Fahrenheit : " << fahrenheit << endl;
} else {
cout << "Enter the temperature in Fahrenheit : " << endl;
cin >> fahrenheit;
fahrenheit = (celsius * 9.0) / 5.0 + 32;
cout << "The temperature in Celcius : " << celsius << endl;
}
std::cin.clear(); // reset any error flags
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), 'n'); // ignore any characters in the input buffer until we find an enter character
std::cin.get(); // get one more char from the user
return 0;
}
在if条件中,使用unit=='C' || unit=='c'
。可能是您输入了大写字母。对于负值去除unsign
,对于浮动答案转换int to double
。在其他条件fahrenheit = (celsius * 9.0) / 5.0 + 32;
错误的情况下,它将是celsius = ( fahrenheit - 32) * 5.0 / 9.0
。。
在else块中,您有not为celsius设置值
我想你想做这样的事情:
celsius = (fahrenheit - 32) * 5 / 9.0;
但是,你的代码是
fahrenheit = (celsius * 9.0) / 5.0 + 32;
相关文章:
- 当我在main中声明了我的2d数组时,为什么我的程序会退出
- 为什么我的程序在for循环中k=0时返回垃圾值
- 为什么它只打印双链接列表的第一个值,而我的程序却崩溃了
- 我的程序没有从文件中读取并输入数据
- 为什么我的C++程序的程序集输出充满了 .ascii,没有汇编代码?
- 我的程序有一个保存配置文件的GUI,如何双击此配置文件以直接加载带有配置数据的GUI?
- 为什么我的程序不能显示斐波那契级数?
- 为什么我的程序在使用预留后没有加速?
- 为什么如果我添加这一行,我的程序会不断询问值
- 为什么当我输入较大的数字时,我的程序会到达文件末尾?
- 这是使用回溯的 nqueen 问题,但我使用了动态 2d 数组,我的程序编译良好,但不返回任何输出
- 为什么我的程序在 O0 和 O2 的优化级别返回不同的结果
- 为什么我的 c++ 程序检查不是初始化的变量?
- 为什么我的程序在输入某个形状的面积的测量值后没有结束?
- 在 fork() 之后,我在我的程序中不断得到相同的 pid
- C++ - 为什么我的程序在再次调用函数后关闭?
- 我的程序将 26 个字母转换为 ascII 没有显示正确答案
- 为什么我的程序在读取/写入文件时会删除最重要的数字?
- 我需要如何更改我的程序以使用打开/关闭原则?
- 我的 c++ 程序似乎没有发现字符串和我拥有但输入使用 getline 的变量之间的比较