我正在写一个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;
}
答案 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语句。)