Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    55

    [C] ordinare in modo crescente un array tramite puntatori

    Salve ragazzi,
    non capisco cosa non vada nel mio codice.. potete aiutarmi?



    Grazie

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non postare delle immagini ... copia il codice in modo che si possa utilizzare ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Ciao, oltre a quello che dice giustamente oregon, aggiungo che il codice mi sembra indentato male. Se volessi lasciar perdere Dev e passare a un IDE migliore come Code::Blocks scopriresti un plugin (preinstallato) che formatta e indenta automaticamente il codice, permettendo una migliore leggibilità.

    Detto questo, a prima vista direi che l'errore è nel ciclo for della i: dato che j parte da i+1, la i non può arrivare a 9, ma deve fermarsi a 8, quindi

    codice:
    for(i=0; i<9; i++)

    Può essere che ci siano altri errori: per ora ho visto questo.


  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    55
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    void funzione (int *myarray);
    
    int main()
    {
        int k;
      int arr[10]={2,5,12,65,35,34,69,66,19,147};
      
      funzione (arr);
      for (k=0; k<10; k++)
          printf ("%d\n", arr[k]);
      system("PAUSE");    
      return 0;
    }
    
    void funzione (int *myarray){
        int i, j, temp, min;
        for (i=0; i<10; i++)
        {
            min=i;
             for (j=i+1; j<10; j++)
                if (myarray[min]> myarray[j])
                   min = j;
                   temp=myarray [min];
                   myarray [min]= myarray [j];
                   myarray [j]= temp;
                   }
                   }
    Ultima modifica di MItaly; 04-06-2014 a 21:03 Motivo: tag code

  5. #5
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Vedo che non hai corretto quello che ti ho suggerito...

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    55
    l'ho appena fatto.. l'output è lo stesso

  7. #7
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Questo è il codice corretto:

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    
    void funzione (int *myarray);
    
    
    int main()
    {
        int k;
        int arr[10]= {2,5,12,65,35,34,69,66,19,147};
    
    
        funzione (arr);
    
    
        for (k=0; k<10; k++)
            printf ("%d\n", arr[k]);
    
    
    
    
        return 0;
    }
    
    
    void funzione (int *myarray)
    {
        int i, j, temp, min;
        for (i=0; i<9; i++)
        {
            min=i;
            for (j=i+1; j<10; j++)
            {
                if (myarray[min]> myarray[j])
                    min = j;
            }
    
    
            temp=myarray[min];
            myarray[min] = myarray[i];
            myarray[i] = temp;
        }
    }

    Scambiavi l'elemento di posto j, mentre devi scambiare l'elemento di posto i.

    PS. Può essere migliorato ma intanto funziona.


  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    55
    Adesso funziona grazie 1000 si, è migliorabile ma mi serviva solo l'ordinamento

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    55
    Per imparare bene ad usare il c mi bastano le guide del sito oppure studiare dal libro è fondamentale?

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Studiare dal libro e per tanto tempo ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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