Ciao a tutti,
sono nuovo nel forum e mi chiamo Gianmarco. Sono un "alle prime armi" con il c++
e ho un esercizio che dovrei risolvere.
L'esercizio mi chiede di inserire due array da tastiera( di uguale dimensione N ) per poi copiare in un nuovo array
C[2N] gli elementi degli array A e B in posizione alternate (nei pari A e nei dispari B). Io ho pensato a questa soluzione
codice:
#include <iostream>
using namespace std;
int main () {
int n; // dim array
cout << "Inserisci dimensione array" << endl;
cin >> n;
int a[n], b[n];
int w = n*2;
int c[w];
// inserimento elementi di a e di b
for (int i = 0; i < n; i++){
cin >> a[i];
}
for (int j = 0; j < n; j++){
cin >> b[j];
}
//copio in c gli elementi di a nelle posizioni pari
for (int k = 0; k < w; k+=2){
for (int i = 0; i < n; i++){
c[k] = a[i];
}
}
//copio in c gli elementi di b nelle posizioni pari
for (int k = 1; k < w; k+=2){
for (int j = 0; j < n; j++){
c[k] = b[j];
}
}
system("PAUSE");
return 0;
}
Il problema è che se io per esempio metto n = 5, a={1,2,3,4,5} e b = {6,7,8,9,0} c dovrebbe essere c = {1,6,2,7,3,8,4,9,5,0}
invece in output ho una cosa del genere c = {5,0,5,0,5,0,5,0,5,0} ..... Come mai????? dove sbaglio??? Mi potreste aiutare per piacere?? (Premetto che ancora non conosco i puntatori e se potete darmi una soluzione che non li utilizzi ne sarei veramente felice =) ) Ringrazio in anticipo!