2017-01-10 15 views
-2

私は2つの配列のうち5つの数字を入力できる小さなプログラムを実行しようとしています。それが完了すると、両方の配列の[i]個数を比較し、より大きなものを3番目の配列に配置する関数が存在するはずです。C++ 3番目の配列[配列番号]の中で最小の(2配列のうち)配列番号をつける

例えばarray1 [0] = 2;配列2 [0] = ARRAY3につながる5

[0]は、それを達成するための関数を使用してみました2

を=、いくつかの理由で、すべてのARRAY3 [i]は数字の結果は、に等しいです。 5.

は、ここに私のコードです:

#include <iostream> 

using namespace std; 

int array1[5], array2[5], array3[5]; 

void insert(int[], int); 
float initialization(int[], int[], int[], int); 


int main() 
{ 
    const int size = 5; 

    insert(array1, 5); 
    cout << endl; 
    insert(array2, 5); 

    for (int i = 0; i < size; i++) 
    { 
     cout << "The " << i + 1 << ". number of the 3rd array is: " << initialization(array1, array2, array3, size) << endl; 
    } 

    system("PAUSE"); 
    return 0; 
} 

void insert(int array[], int size) 
{ 
    for (int i = 0; i < size; i++) 
    { 
     cout << "Enter the " << i + 1 << ". number of the array: "; 
     cin >> array[i]; 
    } 
    cout << "\n"; 
} 

float initialization(int array1[], int array2[], int array3[], int size) 
{ 
    int r; 
    for (int i = 0; i < size; i++) 
    { 
     r = i; 
     if (array1[i] < array2[i]) 
     { 
      array3[i] = array1[i]; 
     } 
     else 
     { 
      array3[i] = array2[i]; 
     } 

    } 

    return array3[r]; 
} 

任意のヘルプ?

+0

をあなたはデバッガを使用する方法を学ぶ必要があるでしょう、そしてあなたは、プロセスで多くのことを学びます。私たちはあなたのためにそれをしません、申し訳ありません。 – Rakete1111

+0

'return array3 [r];' - ここで何を返そうとしていますか?あなたがあなたの課題を慎重に読んだら、あなたは関数から値を返さなければならないと言ったのはどこですか? – PaulMcKenzie

+0

初期化ファンクションが返すものは配列の5番目の要素であったのに対し、配列の5番目の要素でした。 – Superstar

答えて

3

initializationの場合、return array3[r]の場合、rの値は常に5です。

これは有効なメモリアクセスでもありません(つまり、array3[5]はUBです)。

はこのreturn声明を取り除く、とmain機能で簡単に実行します。

initialization(array1, array2, array3, size); 
cout << "The " << i + 1 << ". number of the 3rd array is: " << array3[i] << endl; 
+0

私は修正を行うことができました。お手伝いありがとう。私が実際にそれに気付かなかったとは信じられない。 – Superstar

+0

@スーパースター:あなたは大歓迎です。答えの横にあるVをクリックすることを忘れないでください... – goodvibration

関連する問題