【解決方法】配列とそのサイズを、最小値、最大値、および平均値を決定して表示する関数に渡すにはどうすればよいですか


この問題の解き方がわかりません

私が試したこと:

ユーザーに 10 個の値を入力するように求めました

解決策 1

最も簡単な方法は、STL コンテナーを使用することです。 std::vector. あなたがこの質問をしているので、それは選択肢ではないと思います。 データが double 型であると仮定して、これを行う 1 つの方法を次に示します。

C++
const int ArraySize = 10;

typedef double Array[ ArraySize ];

// wrap this all up in a structure

typedef struct structArrayStr
{
    int     Size;
    Array   Data;
} ArrayStr;

のインスタンスを宣言できるようになりました ArrayStr、それを初期化し、参照によって関数に渡します。

または、構造をまったく使用する必要はありません。 配列とそのサイズを個別のパラメーターとして関数に渡すことができます。

解決策 2

C++ では、次のように配列を渡すことができます。

C++
int myfkt(int* myarr, int n);

int myarr[] = { 16, 2, 77, 40, 12071 };
int n = sizeof(myarr)/sizeof(myarr[0]);

int result = myfkt(myarr, n);

解決策 3

こちらです:

C++
#include <iostream>
using namespace std;

void show_stats( double ad[], size_t size)
{
  // show the stats here...
}

int main()
{
  double ad[]{ 123.5, 42., -1.2E6};
  show_stats( ad, sizeof(ad)/sizeof(ad[0]));
}

または多分

C++
#include <iostream>
#include <array>
using namespace std;

template <typename T, size_t N>
  void show_stats( const array<T, N> & a  )
{
  // show stats here
}

int main()
{
  array<double, 3> ad{ 123.5, 42., -1.2E6};
  show_stats( ad );
}

コメント

タイトルとURLをコピーしました