函数中的变量初始化

Variable initialization in functions

本文关键字:初始化 变量 函数      更新时间:2023-10-16

变量days不会在整个函数中延续。我收到一个错误,说days没有在highestlowest函数中初始化,我不知道如何解决它。这是我到目前为止的代码。

#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[i];
            temptotal += temperatures[i];
            return temperatures[i];
        }
            averagetemp = temptotal / days;
            cout << "The average temperature is: " << averagetemp << endl;
}
void highest()
{
    float max = -9999999999999;
    for (int i = 0; i < days; i++)
    {
        if (temperatures[i] > max)
            max = temperatures[i];
        cout << "The highest temperature is: " << max << endl;
    }
}
void lowest()
{
    float min = 9999999999999;
    for (int i = 0; i < days; i++)
    {
        if (temperatures[i] < min)
            min = temperatures[i];
        cout << "The lowest temperature is: " << min << endl;
    }
}
您需要

days传递给highest()lowest()。如果它是所有 3 个函数的通用参数,则可以在 main() 中设置其值,然后将其传递给它们。我认为days应该是您对 for 循环的使用int,因此:

int main()
{
    int days = 0;
    cout << "Enter the number of days: ";
    cin >> days;
    average(days);
    highest(days);
    lowest(days);
}
float average(int days)
{
    ... ...
}
void highest(int days)
{
    ... ...
}
void lowest(int days)
{
    ... ...
}