Salve a tutti, ho da poco iniziato ad utilizzare C++ e non riesco a risolvere questo esercizio.
ESERCIZIO:
Nella funzione mai, dichiarare:
- a di tipo vettore di 5 int;
- b di tipo vettore di 5 int;
- c di tipo vettore di 5 int;
Per ogni i?{0,…,5}, se a
e b sono distinti, i valori a e b devono essere inseriti nel vettore c in modo che il minore dei due venga inserito prima del maggiore. La funzione deve copiare nel vettore c al più di 5 valori.
Quando eseguo il programma, inserendo rispettivamente nel vettore A i valori 1, 2, 3, 4, 5 e nel vettore B i valori 6, 7, 8, 9, 10, mi esce il seguente errore: Run-Time Check Failure #2 - Stack around the variable 'c' was corrupted.
SCRITTURA:
#include <iostream>
using namespace std;
int main()
{
int a[5], b[5], c[5];
int i, j = 0, z = 0;
cout << "Inserisci 5 valori nel vettore A " << endl;
for (i = 0; i < 5; ++i)
{
cin >> a[i];
}
cout << "Inserisci 5 valori nel vettore B " << endl;
for (i = 0; i < 5; ++i)
{
cin >> b[i];
}
for (i = 0; i < 5; ++i)
{
while (j < 5)
{
if ((a[i] != b[i]) && (a[i] > b[i]))
{
c[j] = b[i];
++j;
c[j] = a[i];
++j;
}
else if ((a[i] != b[i]) && (a[i] < b[i]))
{
c[j] = a[i];
++j;
c[j] = b[i];
++j;
}
++i;
}
}
cout << "I valori nel vettore C sono " << endl;
for (j = 0; j < 5; ++j)
{
cout << c[j] << " ";
}
cout << endl;
system("pause");
return 0;
}
Cosa sbaglio? Grazie!