摄氏度和华氏度转换?自己写的几种垃圾程序,里面有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;
}

这里不知道为啥我的输出和他的输出不一样,我的会有个数字,很奇怪,看代码注释里面的解释

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值