C++完全初学者
在其他地方使用原始数组中的数据时遇到了麻烦。我可以在数学和显示输出行中把它们当作整数来调用吗?制作一个简单的华氏到摄氏的转换程序。
#include <iostream>
#include <array>
int main() {
//Display name of program
std::cout << "Farenheit to Celsius Converter";
//Temperature array
int temp[] = {51, 42, 46, 36, 46, 33, 47, 34, 48, 36, 46, 34, 45, 36};
//Math stuff
int temp1 = temp[1] - 32 * .5556;
int temp2 = temp[2] - 32 * .5556;
int temp3 = temp[3] - 32 * .5556;
int temp4 = temp[4] - 32 * .5556;
int temp5 = temp[5] - 32 * .5556;
int temp6 = temp[6] - 32 * .5556;
int temp7 = temp[7] - 32 * .5556;
int temp8 = temp[8] - 32 * .5556;
int temp9 = temp[9] - 32 * .5556;
int temp10 = temp[10] - 32 * .5556;
int temp11 = temp[11] - 32 * .5556;
int temp12 = temp[12] - 32 * .5556;
int temp13 = temp[13] - 32 * .5556;
int temp14 = temp[14] - 32 * .5556;
//Display output
std::cout << temp1"," << temp2"," << temp3"," << temp4"," << temp5"," << temp6"," << temp7"," << temp8"," << temp9"," << temp10"," << temp11"," << temp12"," << temp13"," << temp14",";
return 0;
}
3条答案
按热度按时间flvlnr441#
我建议您使用标准的
std::transform
算法来转换数组,然后创建一个函数或函子(如lambda)将华氏温度转换为摄氏温度,并将其提供给std::transform
。示例:
Demo
iqih9akk2#
在C++中,使用vector表示大小可变的数组。
要获得良好的转换,请使用浮点数。
重复计算应该是函数。
尽可能使用基于范围的for循环,以避免索引问题
htzpubme3#
首先:我建议使用std::数组,而不是C数组:
第二,你可以通过for循环直接对值进行操作,而不必写14个变量:
打印到输出的过程类似:
请注意,循环以倒数第二个值结束,因为我们不需要为最后一个值使用逗号分隔符。
这不是最优雅的方式,但可能是最适合初学者的方式。