所以我所拥有的是两个阵列,每个阵列都有不同的温度读数。我有一个低阵列,包括本月的低温和包括本月高温的高阵列。我通过从文本文件中读取这些变量来获取这些变量。我的代码如下:
while ( !file.eof() )
{
file >> high[i] >> low[i];
i++;
}
我知道数组的大小,因为它是下面显示的文本文件中的第二行。
April 6, 2010
24
88 72
52 36
73 48
89 72
97 84
61 41
48 37
68 45
88 63
79 52
48 21
55 46
54 41
97 81
55 37
79 70
72 43
68 45
102 80
57 39
37 32
45 28
66 45
59 36
现在我必须从温度中获取计数并创建一个如下图所示的直方图。因此,如果有2个温度大于或小于49,我会在间隔标签后打印两颗星。
< 0|
<= 9|
<=19|
<=29|*
<=39|
<=49|**
<=59|*
<=69|
<=79|*
<=89|
<=99|
>99|
我正在考虑将两个数组合并为一个并循环遍历它们但是我目前知道如何做到这一点的唯一方法是使用switch case或一个巨大的if else块。即使没有0到9之间的温度,我仍然需要打印“&lt; = 9 |”。我不确定如何在没有实际使用if-else的情况下创建count函数。任何想法将不胜感激。
我现在有这个代码用于我的count函数,它结合了两个数组,但就是它:
void count(float lowArr[], float highArr[], int num){
int size = num * 2, i = 0, j =0;
float *arr;
arr = new float[size];
for (i ; i < num; ++i)
{
arr[i] = lowArr[i];
}
for (j; j < num; ++j, ++i)
{
arr[i] = highArr[j];
}
}
答案 0 :(得分:0)
他是这样做的一种方式:
对于#2,您可以使用一些数学来计算出要用于数组的索引。您可能仍需要几个if语句,但不会像您当前想的那样多:
(temp / 10) + 1
计算要填写的条目。 +1
是跳过第一个数组条目(你用于&lt; 0)temp / 10
将使用整数数学(假设temp
是一个int)给你一个数字介于0和9之间,表示临时的“十”部分。