Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di Necsus
    Registrato dal
    Oct 2006
    Messaggi
    87

    Inverti valori array

    Dovrei fare un programma che inverta i valori di un array utilizzando sempre lo stesso array.Ho provato a fare in questo modo ma non riesce:
    #include<stdio.h>
    #include<stdlib.h>
    void leggiArray(int*,int);
    void invertiArray(int*,int);
    int main()
    {
    int dim=0,array[dim];
    printf("Inserisci lunghezza array: ");
    scanf("%d",&dim);
    leggiArray(array,dim);
    invertiArray(array,dim);
    system("pause");
    return 0;
    }
    void leggiArray(int*array,int dim)
    {
    for(int i=0;i<dim;i++)
    {
    printf("Inserisci valore: ");
    scanf("%d",&array[i]);
    }

    }
    void invertiArray(int*array,int dim)
    {
    int i=dim,v;
    for(int j=0;j<dim;j++)
    {
    i--;
    v=array[j];
    array[j]=array[i];
    array[i]=v;
    }
    for(int cont=0;cont<dim;cont++)
    printf("%d\n",array[cont]);
    }
    Grazie Necsus.

  2. #2

    Re: Inverti valori array

    Prova a copiare l'array in uno ausiliario e poi fai scorrere questo all'indietro e copi i valori in quello originale che invece partirà con indice 0..

    ecco come :
    codice:
    void invertiArray(int*array,int dim)
    {
      int aux[dim]; 
      int i=dim,v,j=0;
      
      //copiamo l'array in quello ausiliare
      aux=array;
    
      for(i;i>0;i--)
      {
         array[j]=aux[i];
         j++;
      }
    }
    P.S:
    Scusa se ci sono errori ma il mio c risulta un pochino arrugginito dato che è un po' che non lo spolvero (ora uso prevalentemente DELPHI e PHP ) ma l'idea dovrebbe essere quella giusta!
    "Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Moderazione

    Originariamente inviato da Necsus
    Dovrei fare un programma che inverta i valori di un array utilizzando sempre lo stesso array.Ho provato a fare in questo modo ma non riesce
    Manca sempre il linguaggio...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4

    Re: Moderazione

    Originariamente inviato da alka
    Manca sempre il linguaggio...
    emm.. dammi almeno il tempo di modificare il post..non mi ero accorto di aver lasciato aperto il ta g [code]!
    "Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Moderazione

    Originariamente inviato da Whitecrowsrain
    emm.. dammi almeno il tempo di modificare il post..non mi ero accorto di aver lasciato aperto il tag [...]
    Non mi stavo riferendo a te. :berto:
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6

    Re: Moderazione

    Originariamente inviato da alka
    Non mi stavo riferendo a te. :berto:
    Scusa... ho letto male! cmq la mia era solo una battutina! :ignore: sta mattina sono di buon di buon umore!
    "Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant

  7. #7
    Attento tu scrivi

    int dim=0,array[dim]; (qui la dimensione è zero)

    Il fatto che poi dim cambi non implica che cambi anche la dimensione dell' array.

    Forse è meglio usare malloc
    Ci sono 10 tipi di persone al mondo, chi conosce il sistema binario e chi no.

  8. #8
    Originariamente inviato da bigmickey
    Attento tu scrivi

    int dim=0,array[dim]; (qui la dimensione è zero)

    Il fatto che poi dim cambi non implica che cambi anche la dimensione dell' array.

    Forse è meglio usare malloc
    già.. mi era sfuggita questa cosa perchè mi ero concentrato sull'inveritre i dati..

    quindi sta attento, nella funzione che ti ho postato dim deve contenere la dimensione dell'array!
    "Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant

  9. #9

    io farei cosi

    Tralasciando l'inizio in cui l'utente inserisce gli int che mi vanno a riempire l'array...
    Anziche' un array ausiliario utilizzerei un int ausiliario (int aux

    Inversione:

    codice:
    ...
    
    for (i=0; i<dim/2; i++) {
       aux=array[i];
       array[i]=array[dim-i-1];
       array[dim-i-1]=aux;
    }
    
    ...

    Death in t
    he dream world
    will set your soul
    wa
    ndering for eternity, Demon

  10. #10
    Utente di HTML.it L'avatar di Necsus
    Registrato dal
    Oct 2006
    Messaggi
    87
    Originariamente inviato da bigmickey
    Attento tu scrivi

    int dim=0,array[dim]; (qui la dimensione è zero)

    Il fatto che poi dim cambi non implica che cambi anche la dimensione dell' array.

    Forse è meglio usare malloc
    Grazie, il problema era questo!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.