【问题标题】:This function only prints out the last value entered into the array这个函数只打印出最后输入到数组中的值
【发布时间】:2015-01-17 17:08:16
【问题描述】:

我需要这个函数来打印出输入到数组中的所有值的最大值、最小值和平均值。我遇到了程序只会打印出为数组输入的最后一个值的问题。前任。如果我输入 43、78 和 23,它只会打印平均值、最大值和最小值的 23。我做错了什么来得到这个输出?

 #include <iostream>
 using namespace std;
 float temptotal = 0;
 float averagetemp = 0;
 float temperatures[50];
 float average();
 void highest();
 void lowest();
 int main()
 {
 average();
 highest();
 lowest();
  }
 float average()
{
    float days = 0;
    cout << "Enter the number of days: ";
    cin >> days;
    if (days > 50)
    {
        cout << "You may only enter temperatures for 50 days." << endl;
        return 0;
    }
    for (int i = 1; i <= days; i++)
    {
        cout << "Enter the temperature for day number " << i << ": ";
        cin >> temperatures[50];
    }
            temptotal += temperatures[50];
            averagetemp = (temptotal / days);
            cout << "The average temperature is: " << averagetemp << endl;
            return temperatures[50];
}
void highest()
{
    float max = -9999999999999;
    if (temperatures[50] > max)
        max = temperatures[50];

    cout << "The highest temperature is: " << max << endl;
    }
    void lowest()
    {
            float min = 9999999999999;
            if (temperatures[50] < min)
                min = temperatures[50];
            cout << "The lowest temperature is: " << min << endl;
    }

【问题讨论】:

    标签: arrays function max average min


    【解决方案1】:

    您将所有输入存储在数组的第 50 个元素中。

    因此最后一个会覆盖所有其他的。

    这应该适用于平均。

    for (int i = 1; i <= days; i++)
    {
        cout << "Enter the temperature for day number " << i << ": ";
        cin >> temperatures[i];
        temptotal += temperatures[i];
    }
    average = temptotal / days ;
    

    这应该适用于最大值。

    float max = -9999999999999;
    for(  int i = 0 ; i < days ; i++ )
    {
        if (temperatures[i] > max)
            max = temperatures[i];            
    }
    cout << max;
    

    也为 min 做类似的事情。

    【讨论】:

    • max 和 min 的代码不起作用,我不断收到有关 days 变量的错误。
    • 小米123,它指的是无效的温度[50]。我编辑了 User3946110 的帖子,现在 max 的代码应该可以工作了。
    • 它仍然无法工作,我收到一条错误消息,指出天变量未初始化。
    • 真的吗?从声明的位置到您使用它的位置查看。在您发布的代码中看起来不错,但您现在可能已经对其进行了一些编辑。如果您在一个小时后仍然卡住,请重新发布问题。还要看看你正在阅读的地方。顺便说一句,days 应该是 int 而不是 float。用浮点数索引数组是不可靠的。你认为温度[2.5678] 应该返回多少?
    猜你喜欢
    • 1970-01-01
    • 2017-12-27
    • 2015-06-23
    • 1970-01-01
    • 2014-03-24
    • 1970-01-01
    • 2021-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多