Esercizio su puntatori e array

di il
4 risposte

Esercizio su puntatori e array

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)


4 Risposte

  • Re: Esercizio su puntatori e array

    Quale while?

    A quale punto dell'esercizio ti riferisci?

    Cosa succede e cosa dovrebbe succedere?

    Posta il codice con tutte le parti in modo che sia compilabile.
  • Re: Esercizio su puntatori e array

    Il codice è completo così, come da testo l'ultimo ciclo while dovrebbe fare la differenza tra i numeri degli array (precisamente la seconda metà) ma non riesco a scriverli un quanto risulta tutto zero. Le parti commentate sono soltanto quelle che ho usato via via per fare verifiche a video che il codice eseguisse quello che mi veniva richiesto nulla di più, quindi al fine dell'esercizio sono inutili e superflue in quando ho un output che deve usare un unico ciclo.
  • Re: Esercizio su puntatori e array

    Completo? E ARRAY cosa è? Ho un errore in compilazione ...
  • Re: Esercizio su puntatori e array

    Scusate mancava la parte prima del main..
    #include <iostream>
    
    #define ARRAY 6
    
    using namespace std;
    e poi il codice sopra inserito..
    scusate ancora..
Devi accedere o registrarti per scrivere nel forum
4 risposte