Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24
  1. #1

    [c] puntori a numeri pari di un array

    Ragà come faccio tramite i puntatori a selezionare gli elementi pari di un array? (Solo l'idea non il codice)

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Elementi pari o di indice pari? E in che senso "selezionare"?
    every day above ground is a good one

  3. #3
    allora ho un array a[5]={1,2,3,4,5};

    devo selezionare (con un puntatore) i numeri pari 2 e 4 per poi moltiplicarli per 10. E farmi stampare il vettore modificato.

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Cioè devi esaminare tutto l'array tramite puntatore e moltiplicare i numeri pari per 10 ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Comincia ad impostare il ciclo for per esaminare tutti i valori dell'array.
    Imposta un puntatore all'inizio dell'array e usalo per prendere il valore del singolo elemento.
    Controlla se è pari o dispari e moltiplicalo se è pari.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    codice:
    #include <stdio.h>
    
    
    int main(){
        int i;
        int a[]={1,2,3,4,5,6,7};
        
        
        int *Ppari=a;
        
        for(i=0;i<7;i++){
           *Ppari=a[i];
           if (*Ppari%2==0){
                 a[i]=a[i]*10;
                 }
        
    }
        for(i=0;i<7;i++){
           printf("a[%d] = %d\n", i, a[i]);
           }
    system("pause");
    }
    Perchè il primo valore dell'array diventa sempre il numero degli elementi dellìarray stesso?

    ad esempio questo mi da in output:

    7
    20
    3
    40
    5
    60
    7

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Perché inizializzi il puntatore all'elemento di base dell'array, il che significa che ad ogni istruzione

    *Ppari = a[i]

    vai a modificare il primo elemento dell'array, che è puntato anche da Ppari. L'ultima volta che viene eseguita quest'istruzione è per l'ultimo elemento dell'array, che nel tuo caso è proprio uguale al size dello stesso (7). Se ci metti 130, avrai 130 come primo elemento.

    Elimina quell'inizializzazione di Ppari e tutto si risolve.
    every day above ground is a good one

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Con le correzioni per usare il puntatore ...

    codice:
    int main()
    {
        int i;
        int a[]={1,2,3,4,5,6,7};   
        
        int *Ppari=a;
        
        for(i=0; i<7; i++, Ppari++)
           if(*Ppari%2==0) 
             *Ppari *= 10;
    
        for(i=0;i<7;i++)
           printf("a[%d] = %d\n", i, a[i]);
    
        system("pause");
        return 0;
    }
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Grazie mille...pensavo che la difficoltà dei puntatori all'inizio fosse solo una suggestione....invece sono dei veri figli di......

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.