2016-04-12 14 views
-2

質問: パラメータとして2つの配列AとBを持ち、配列の対応する要素の合計を計算して格納する関数sumArray()を作成します。必要と思われる追加パラメータを含めてください。 previous前のスライドで関数inputArray()を使用して2つの整数配列X1とX2を入力し、sumArray()を使用してX1とX2の対応する値の合計を計算するmain()関数を記述します。計算された値が表示されます。オンライン回答から複数の値を返す方法がありません

私は関数から複数の値を返す方法を探していましたが、SOからのいくつかの例を試してもまだ機能していません。誰もが私はそれを学ぶことを開始して私を助けることができます。

問題:main()でsumAとsumBの値を取得する方法がわかりません。ここで

は私のコードです:

#include <iostream> 

using namespace std; 

int sumArray(int a[], int b[]){ 
int sumA=0, sumB=0; 
for(int i=0; i<4; i++){ 
    sumA += a[i]; 
    sumB += b[i]; 
} 
return sumA,sumB; 
} 

void inputArray(int arg[], int n){ 
for(int i=0; i<n; i++){ 
    cin>>arg[i]; 
} 
} 

int main(){ 
int firstarray[4]; 
int secondarray[4]; 
int l=4; 

cout<<"Input 4 values for the array 1: "; 
inputArray(firstarray,l); 

cout<<"Input 4 values for the array 2: "; 
inputArray(secondarray,l); 

sumArray(firstarray,secondarray); 

cout<<"sum of array 1 is: "<<firstarray<<endl; 
cout<<"sum of array 2 is: "<<secondarray<<endl; 

return 0; 
} 

これは私がそれを学んだ唯一の方法です。

+0

常に*言語タグを追加してください。私はあなたに[タグ:C++]を追加しました。 –

+0

コードを正しくインデントしてください。あなたは私たちにあなたを助けてくれることを求めています。 –

+0

コードにはどのような問題がありますか?あなたは何が間違っているか教えていない。 「それはうまくいかない」ということは、車の整備士に電話して「助けてもらえますか、車は動かないのですか? –

答えて

1

2つの追加の引数として参照を受け入れることができます。 sumAとsumBを正しい値に設定することができます。

void sumArray (int a[], int b[], int & sumA, int & sumB) 
{ 
    sumA=0; 
    sumB=0; 
    for(int i=0; i<4; i++){ 
    sumA += a[i]; 
    sumB += b[i]; 
    } 
} 

次に、あなたは、なぜ2回だけ、その関数を呼び出していない

int firstarray[4]; 
int secondarray[4]; 
// do your stuff here 
int sumA, sumB; 
sumArray(firstarray,secondarray, sumA, sumB); 
cout<<"sum of array 1 is: "<<sumA<<endl; 
cout<<"sum of array 2 is: "<<sumB<<endl; 
0
std::tuple<int,std::string> return_two() 
{ 
    return std::make_tuple(42, "don't panic"); 
} 



auto sval = std::string{}; 
auto ival = 0; 
std::tie(ival,sval) = return_two(); 
+2

これは説明なしのコードのみの回答です。また、OPには言及していない言語機能も使用されており、必要なヘッダーも含まれていません。 –

+0

コードの説明を追加してください。コードの理解に役立ちます – silwar

0

のようにそれを使用することができますか?あなたのコードの残りの部分で次に

int sumArray(int array[]){ 
int sum=0; 
for(int i=0; i<4; i++){ 
    sum += array[i]; 
} 
return sum; 
} 



はにあなたのsumArray機能を変更

void inputArray(int arg[], int n){ 
for(int i=0; i<n; i++){ 
    cin>>arg[i]; 
} 

} 
int main(){ 
int firstarray[4]; 
int secondarray[4]; 
int l=4; 

cout<<"Input 4 values for the array 1: "; 
inputArray(firstarray,l); 

cout<<"Input 4 values for the array 2: "; 
inputArray(secondarray,l); 

cout<<"sum of array 1 is: "<<sumArray(firstArray)<<endl; 
cout<<"sum of array 2 is: "<<sumArray(secondArray)<<endl; 

return 0; 
} 

あなたがそのように行うことができない場合、あなたはへのポインタを返すことができます配列の最初の部分。 ここに示すように、Return array in a function

関連する問題