首页 » 技术分享 » 摄氏度和华氏度转换?自己写的几种垃圾程序,里面有swithc和case

摄氏度和华氏度转换?自己写的几种垃圾程序,里面有swithc和case

 

先是第一种,需要用户自己先选择时摄氏度还是华氏度,不好用

#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,转载请注明来源!

0