Salve ragazzi.. ho un piccolo esercizio da svolgere ma, con grande stupore ho notato che non funziona come vorrei, ecco il testo:
* si dichiari due array di uguale capienza e un puntatore, tutti dello stesso tipo;(fatto)
* dichiari in aggiunta, UNA SOLA variabile intera con visibilità estesa a tutta la funzione main;(fatto)
* inizializzi il puntatore in modo che indirizzi il doppio della capienza di ciascuno dei due array;(fatto)
* usi un ciclo for per inizializzare ordinatamente il contenuto del secondo array con valori opposti a quelli del primo;;(fatto)
* usi un ciclo do per inizializzare ordinatamente la prima metà dei valori puntati dal puntatore con le somme dei contenuti dei due array;(fatto)
* usi un ciclo while per inizializzare ordinatamente la seconda metà dei valori puntati dal puntatore con le differenze dei contenuti dei due array; ;(fatto)????
* usi un ciclo che ritiene più idoneo (ma solo uno) per scrivere ordinatamente sul canale di output i contenuti dei due array e quelli puntati dal puntatore;
ed io codice che ho scritto è:
int main() {
int array1[ARRAY], array2[ARRAY], *puntatore, varInt;
varInt = (sizeof(array1)/sizeof(array1[0]) + sizeof(array2)/sizeof(array2[0]))*2;
cout << varInt;
puntatore = new int[varInt];
for (int n = 0; n < ARRAY; n++){
cout << "Scrivi l'intero da inserire nell'array nella " << n+1 << " posizione: ";
cin >> array1[n];
}
// for (int n = 0; n < ARRAY; n++){
// cout << array1[n] << '\n';
// }
for (int j=ARRAY-1, n=0; j>=0, n<ARRAY; j--, n++){
array2[j] = array1[n];
}
// for ( int n = 0; n < ARRAY; n++){
// cout
// << "Array2 " << array2[n] << '\n';
// }
do{
for (varInt = 0; varInt < ARRAY/2; varInt++){
puntatore[varInt] = array1[varInt] + array2[varInt];
}
}while (varInt > ARRAY/2);
// for (int i = 0; i < varInt; i++){
// cout << puntatore[i] << '\n';
// }
// cout <<"varInt" << varInt <<'\n';
// cout << "ARRAY" <<ARRAY << '\n';
----------------------------------------------------------------------------
varInt -= 1;
while (varInt++ < ARRAY-1){
puntatore[ARRAY] = array1[varInt] - array2[varInt]; //CODICE INCRIMINATO
}
-----------------------------------------------------------------------------
// cout << varInt << '\n';
// cout << ARRAY << '\n';
for (int i = 0; i < ARRAY; i++){
cout
<< "Array1: " << array1[i] << '\t'
<< "Array2: " << array2[i] << '\t'
<< "Puntatore: " << puntatore[i] << '\n';
}
}
L'output mi va bene quasi tutto..
L'ultima operazione con while non mi da il risultato sperato.. helppp!!!
24Scrivi l'intero da inserire nell'array nella 1 posizione: 1
Scrivi l'intero da inserire nell'array nella 2 posizione: 4
Scrivi l'intero da inserire nell'array nella 3 posizione: 2
Scrivi l'intero da inserire nell'array nella 4 posizione: 5
Scrivi l'intero da inserire nell'array nella 5 posizione: 3
Scrivi l'intero da inserire nell'array nella 6 posizione: 6
Array1: 1 Array2: 6 Puntatore: 7
Array1: 4 Array2: 3 Puntatore: 7
Array1: 2 Array2: 5 Puntatore: 7
Array1: 5 Array2: 2 Puntatore: 0
Array1: 3 Array2: 4 Puntatore: 0
Array1: 6 Array2: 1 Puntatore: 0
RUN SUCCESSFUL (total time: 4s)