将变量分配给数组的函数

Function assigning variables to array

本文关键字:函数 数组 变量 分配      更新时间:2023-10-16

我正在为学校做编程作业,(只需要帮助我完成部分原始代码,而不是家庭作业求解器,谢谢。)而我的函数findHighest()工作不正常。我相信它只有零,而不是存储传递给它的双值的数组。我需要帮助来补救这个问题。感谢

int main()
{
double nEast = 0, sEast = 0, nWest = 0, sWest = 0;
cout << "nnttQuarterly Sales Report by regionn";
cout << "nnNorth East region:n" ;
nEast = getSales(nEast);
cout << "nnSouth East region:n";
sEast = getSales(sEast);
cout << "nnNorth West region:n";
nWest = getSales(nWest);
cout << "nnSouth West region:n";
sWest = getSales(sWest);
findHighest(nEast, sEast, nWest, sWest);
return 0;
}


void findHighest (double nEast, double sEast, double nWest, double sWest)
{
double regions[4] = {nEast, sEast, nWest, sWest};
double temp = 0;

for(int i = 0; i <= 3;)
{
    if(regions[i] >= temp)
    {
        temp = regions[i];
        cout << temp;
        i++;
    }
}
cout << "The biggest number is: " << temp << endl;
}

尝试以下

#include <algorithm>
//...
void findHighest( double nEast, double sEast, double nWest, double sWest )
{
   std::cout << "The biggest number is: " 
             << std::max( { nEast, sEast, nWest, sWest } )  << std::endl;
}

或者你可以写

void findHighest( double nEast, double sEast, double nWest, double sWest )
{
   double max = nEast;
   if ( max < sEast ) max = sEast;
   if ( max < nWest ) max = nWest;
   if ( nax < sWest ) max = sWest;
   std::cout << "The biggest number is: " 
             << max  << std::endl;
}

或者使用阵列的另一种解决方案

void findHighest( double nEast, double sEast, double nWest, double sWest )
{
   double regions[] = { nEast, sEast, nWest, sWest };       
   double max = regions[0];
   for ( double x : regions )
   {
      if ( max < x ) max = x;
   }
   std::cout << "The biggest number is: " 
             << max  << std::endl;
}

第一个和第三个解决方案基于C++2011的特性。然而,在第三种解决方案中,您可以简单地将基于范围的for语句替换为普通的for循环。这是你的任务。:)