[ad_1]
この問題の解き方がわかりません
私が試したこと:
ユーザーに 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 ); }
[ad_2]
コメント