函数不返回输入到数组中的最大值和最小值

小米123

此函数不能正确返回输入到数组中的最高和最低值。我不确定我为此程序输入的代码。该程序需要返回输入到数组中的所有元素的平均值(平均值部分工作正常),并找到输入到数组中的所有值中的最高和最低值。请帮忙!

#include <iostream>
using namespace std;
float temptotal = 0;
float averagetemp = 0;
float temperatures[50];
float average(int);
void highest(int);
void lowest(int);
int main()
{
int 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;
}
average(days);
highest(days);
lowest(days);
}
float average(int days)
{
    for (int i = 1; i <= days; i++)
    {
        cout << "Enter the temperature for day number " << i << ": ";
        cin >> temperatures[i];
        temptotal += temperatures[i];
    }
        averagetemp = temptotal / days;
        cout << "The average temperature is: " << averagetemp << endl;
        return averagetemp;
}
void highest(int days)
{
    int count;
    int highest;
    highest = temperatures[50];
    for (count = 1; count < days; count++)
    {
        if (temperatures[count] > highest)
            highest = temperatures[count];
        cout << "The highest temperature is: " << highest << endl;
    }
}
void lowest(int days)
{
    int count;
    int lowest;
    lowest = temperatures[50];
    for (count = 1; count < days; count++)
    {
        if (temperatures[count] < lowest)
            lowest = temperatures[count];
        cout << "The lowest temperature is: " << lowest << endl;
    }
}
来自莫斯科的弗拉德

该功能

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

已经错误,因为元素temperatures[0]不会被初始化。你必须写

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

或者

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

功能highestlowest也是错误的。例如,数组temperatures没有索引为50的元素。此外,用户可以输入少于50天的天数。因此,此语句

highest = temperatures[50];

是错的。

可以像该函数定义那样编写函数

void highest( int days )
{
    int highest = temperatures[0];

    for ( int count = 1; count < days; count++ )
    {
        if ( highest < temperatures[count] ) highest = temperatures[count];
    }

    cout << "The highest temperature is: " << highest << endl;
}

考虑到acccount有标准算法std::max_elementstd::min_elementstd::minmax_element在头部声明<algorithm>可以使用,而不是你的功能。

例如,可以通过std::max_element以下方式使用标准算法定义最高功能

#include <algorithm>

//...

void highest( int days )
{

    cout << "The highest temperature is: " 
         << *std::max_element( temperatures, temperatures + days )
         << endl;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

输入数组java的最小值和最大值?

来自分类Dev

如何将用户提示(输入)存储到数组中并检索其最大值和最小值?

来自分类Dev

数组中的Java最小值和最大值

来自分类Dev

JavaScript中数组的最小值和最大值

来自分类Dev

数组中的最大值和最小值

来自分类Dev

使用C中的函数查找数组中的最大值和最小值

来自分类Dev

在单个递归函数中查找数组的最大值和最小值

来自分类Dev

从数组中查找最小值和最大值,最小值始终为0

来自分类Dev

从数组中查找最小值和最大值,最小值始终为0

来自分类Dev

根据另一列的值返回列的最小值和最大值的函数

来自分类Dev

数学最小值和最大值返回NaN

来自分类Dev

查找函数的最小值和最大值

来自分类Dev

awk查找数组的最小值和最大值

来自分类Dev

C编程数组的最小值和最大值

来自分类Dev

查找用户输入的最小值和最大值,而无需使用数组

来自分类Dev

数组的最小值/最大值

来自分类Dev

是否有一个函数返回最小值和最大值之间的整数?

来自分类Dev

用数组中的最小值替换最大值

来自分类Dev

最小值和最大值

来自分类Dev

如何获取数组中数组的最小值和最大值?

来自分类Dev

获取Clojure中的最大值和最小值

来自分类Dev

在列表中交换最大值和最小值

来自分类Dev

列表集合中的最小值和最大值

来自分类Dev

在.json中查找最大值和最小值

来自分类Dev

元组列表中的最小值和最大值

来自分类Dev

在列表中获取最小值和最大值

来自分类Dev

获取Clojure中的最大值和最小值

来自分类Dev

在.json中查找最大值和最小值

来自分类Dev

列表集合中的最小值和最大值

Related 相关文章

热门标签

归档