先是第一种,需要用户自己先选择时摄氏度还是华氏度,不好用
#include <iostream>
using namespace std;
int main()
{
char FC;
cout << "请选择输入的是摄氏度C还是华氏度F?" << "\n";
cin >> FC;
float temp;
float tempC;
float tempF;
switch (FC)
{
case 'f':
case 'F':
cout << "请输入度数" << "\n";
cin >> temp;
tempC = (temp - 32) * 9 / 5;
cout << "当前温度为:" << tempC << "C" << "\n";
break;
case 'C':
case 'c':
cout << "请输入温度" << "\n";
cin >> temp;
tempF = temp * 9 / 5 + 32;
cout << "当前温度为:" << tempF << "F" << "\n";
break;
default:
cout << "请输入正确的数据" << "\n";
break;
}
//cout << endl;
return 0;
}
第二种,能够识别用户是输入了华氏度还是摄氏度,我先想想哈,这个是小甲鱼老师的程序
#include <iostream>
using namespace std;
int main()
{
const unsigned short ADD_SUBTRACT = 32;
const double RATIO = 9.0 / 5.0;
double tempIn, tempOut;
char typeIn, typeOut;
cout << "请以【xx.x C】或者【xx.x F】的格式输入一个温度:";
cin >> tempIn >> typeIn; //这样就是空格前的xx.x给前面的,空格后的给后面的
cin.ignore(100, '\n');
cout << "\n"; //我的原本输出不对就是因为这里我写成了'\n'
switch (typeIn)
{
case 'C':
case 'c':
tempOut = tempIn * RATIO + ADD_SUBTRACT;
typeOut = 'F';
typeIn = 'C';
break;
case 'F':
case 'f':
tempOut = (tempIn - ADD_SUBTRACT) / RATIO;
typeOut = 'C';
typeIn = 'F';
break;
default:
typeOut = 'E';
break;
}
if (typeOut != 'E')
{
cout << tempIn << typeIn << " = " << tempOut << typeOut << "\n\n";
}
else
{
cout << "输入错误!" << "\n\n";
}
cout << "请输入任何字符结束程序" << "\n";
cin.get();
return 0;
}
这里不知道为啥我的输出和他的输出不一样,我的会有个数字,很奇怪,看代码注释里面的解释
转载自原文链接, 如需删除请联系管理员。
原文链接:摄氏度和华氏度转换?自己写的几种垃圾程序,里面有swithc和case,转载请注明来源!