Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    13

    [C] Ordinamento di un array

    codice:
    #include <stdio.h>
    
    main () {
         int ok;
         int i,n,j,temp;
         int A[]={1,2,3,4,5};
         n=5;
         //do {
             //for (j=0;j<n;j++) {
             do {
                 printf("ciclo while\n");
                 ok=1;
                 for (i=0;i<n;i++) {
                     if (A[i]>A[i+1]) {
                     printf("scambio\n");
                     temp=A[i];
                     A[i]=A[i+1];
                     A[i+1]=temp;
                     //printf("%d",A[i]);
                     ok=0; // FALSA
                     }
                 }
             } while(ok==0);
             //}
         //} while (ok==0 && i<n);
         for (i=0;i<n;i++) {
             printf("%d\n",A[i]);
             }
             system("PAUSE");
    Questo e' un esercizio svolto. Molto semplice, ho utilizzato i due printf per il debug anche perche' diversamente non so' come farlo.
    Si tenga presente che cosi' com'e' funziona ma se avete suggerimento e/o altri consigli ditemi pure.
    GameOperator: KingsAge.it

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma la domanda qual e'?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326

    Re: [C] Ordinamento di un array

    Originariamente inviato da devel
    Si tenga presente che cosi' com'e' funziona
    C'è qualcosa di terribilmente rotto qui:

    codice:
    ciclo while
    scambio
    ciclo while
    scambio
    scambio
    ciclo while
    scambio
    scambio
    scambio
    ciclo while
    scambio
    scambio
    scambio
    scambio
    ciclo while
    scambio
    scambio
    scambio
    scambio
    ciclo while
    scambio
    scambio
    scambio
    scambio
    scambio
    ciclo while
    0
    0
    0
    0
    0
    ti consiglierei di aggiustare così:

    codice:
    for (i = 0; i < n-1; i++) {
    Per il resto, anche io non ho ben capito che tipo di consigli vorresti.
    every day above ground is a good one

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    In effetti, in questa parte di codice

    codice:
                 for (i=0;i<n;i++) {
                     if (A[i]>A[i+1]) {
    la parte in rosso, con quel ciclo for, va oltre lo spazio allocato del vettore ...

    Forse non l'hai provato bene ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    13
    Originariamente inviato da oregon
    In effetti, in questa parte di codice

    codice:
                 for (i=0;i<n;i++) {
                     if (A[i]>A[i+1]) {
    la parte in rosso, con quel ciclo for, va oltre lo spazio allocato del vettore ...

    Forse non l'hai provato bene ...
    In che senso Oregon?
    In fase di compilazione - esecuzione non mi da` nessun tipo di problema.
    GameOperator: KingsAge.it

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    13

    Re: Re: [C] Ordinamento di un array


    Per il resto, anche io non ho ben capito che tipo di consigli vorresti.
    Un qualsiasi consiglio - per migliorare l`applicazione.
    GameOperator: KingsAge.it

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da devel
    In che senso Oregon?
    In fase di compilazione - esecuzione non mi da` nessun tipo di problema.
    Nessun errore in fase di compilazione, non è un problema a "compile time" ...

    A runtime potresti non accorgerti di nulla, ma stai accedendo (in lettura, ma anche in scrittura a seconda dei casi nelle righe seguenti) ad un elemento dell'array che non esiste.

    Avrai un comportamento "indefinito", se ti va bene, un errore di "access violation" se ti va male ...

    (E diciamo che, se fossi un tuo professore, potrei pensare che non hai capito come funzionano gli array in C ...)
    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.