Fahrenheit to Celsius Converter C ++

时间:2018-02-11 23:56:50

标签: c++

我正在写一个Fahrenheit到Celsius转换器,它也使用C ++中的switch break功能将Celsius转换为Fahrenheit。该程序是用户输入一个数字,后跟一个“C”表示摄氏度或“f”表示华氏度,然后他们点击输入,程序将计算转换并显示转换的温度。华氏温度到摄氏温度的转换是准确的,但是无论你输入的华氏温度如何,摄氏温度到华氏温度的计算总是会转换为1.66607e + 62。此外,它不会在您第一次输入温度时计算,您必须在它工作之前输入两次并转换它。我只是想知道我该怎么做才能解决这些问题。继承我的代码:

#include <iostream> //cout
#include <conio.h> //getch

using namespace std;

int main()    
{        
    double celsius, fahrenheit, temp;

    char unit;

    cout << "Enter the temperature you wish to convert followed by F for Fahrenheit or C for Celsius: " << endl;
    cin >> temp;
    cin >> unit;
    cin >> fahrenheit;
    cin >> celsius;    

    switch (unit)
    {
    case 'F':         temp = fahrenheit;
        celsius = (5.0 / 9.0) * (fahrenheit - 32.0);   
        cout << celsius << " degrees celsius";                                          
        break;

    case 'f':         temp = fahrenheit;
        celsius = (5.0 / 9.0) * (fahrenheit - 32.0);      
        cout << celsius << " degrees celsius";                                          
        break;

    case 'C':         temp = celsius;
        fahrenheit = (9.0 / 5.0) * celsius + 32.0;      
        cout << fahrenheit << " degrees fahrenheit"; 
        break;

    case 'c':         temp = celsius;
        fahrenheit = (9.0 / 5.0) * celsius + 32.0; 
        cout << fahrenheit << " degrees fahrenheit";                                      
        break;      

    default:        cout << "Invalid Format";               
        break;    
    }

    _getch();

    return 0;
}

2 个答案:

答案 0 :(得分:0)

你有4个输入,你可能只先输入两个,然后程序仍然等待你的回复。然后你就进入&#34;进入&#34;这两个变量具有空白值并在计算中使用它们。你也重新设置&#34; temp&#34;变量你只是松了这个。 就像有人说的那样,你应该为初学者阅读一些书。

答案 1 :(得分:0)

为您解决了问题!

#include <iostream> //cout
#include <conio.h> //getch

using namespace std;

int main()
{
   double celsius, fahrenheit, temp;

char unit;

cout << "Enter the temperature you wish to convert followed by F for Fahrenheit or C for Celsius: " << endl;
cin >> temp;
cin >> unit;
switch (unit){
case 'F':
    celsius = (5.0 / 9.0) * (temp - 32.0);
    cout << celsius << " degrees celsius";
    break;

case 'f':
    celsius = (5.0 / 9.0) * (temp - 32.0);
    cout << celsius << " degrees celsius";
    break;

case 'C':
    fahrenheit = (9.0 / 5.0) * temp + 32.0;
    cout << fahrenheit << " degrees fahrenheit";
    break;

case 'c':
    fahrenheit = (9.0 / 5.0) * temp + 32.0;
    cout << fahrenheit << " degrees fahrenheit";
    break;

default:
    cout << "Invalid Format";
    break;
}

_getch();

return 0;
}

编辑:切换案例陈述有&#34;通过&#34;行为。因此,你可以把案例放在&#39; F&#39;和&#39; f&#39;通过执行以下操作,通过对此帖的评论建议,在一起(以及类似的&#39; C&#39;和&#39; c&#39;)

#include <iostream> //cout
#include <conio.h> //getch

using namespace std;

int main()
{
   double celsius, fahrenheit, temp;

char unit;

cout << "Enter the temperature you wish to convert followed by F for Fahrenheit or C for Celsius: " << endl;
cin >> temp;
cin >> unit;
switch (unit){
case 'F':
case 'f':
    celsius = (5.0 / 9.0) * (temp - 32.0);
    cout << celsius << " degrees celsius";
    break;

case 'C':
case 'c':
    fahrenheit = (9.0 / 5.0) * temp + 32.0;
    cout << fahrenheit << " degrees fahrenheit";
    break;

default:
    cout << "Invalid Format";
    break;
}

_getch();

return 0;
}

如果这是学校作业,这可能是他们想要你做的(以及为什么你应该使用switch语句。)