Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Bubble sort
Forum - C/C++ - Bubble sort

Avatar
dpstart (Normal User)
Newbie


Messaggi: 5
Iscritto: 13/01/2013

Segnala al moderatore
Postato alle 16:45
Mercoledì, 16/01/2013
Ho implementato questo programma che dovrebbe riordinare i dieci elementi interi di un array:

Codice sorgente - presumibilmente C++

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. int n[11], a, b,i;
  5. FILE *fl;
  6. void bubble_sort(int *ar, int n);
  7.        
  8.        
  9.  
  10. void bubble_sort(int *ar, int n) { //Parametri: puntatore a array e numero elementi
  11.  
  12. int c; //Variabile di scambio
  13.  
  14. for(a=0; a<n; a++) {
  15.        
  16.         for(b=0; b<(n-1); b++) {
  17.        
  18.                if(ar[b]>ar[b+1]) {
  19.        
  20.                         c=ar[b+1];
  21.                         ar[b+1]=ar[b];
  22.                         ar[b]=c; } }
  23.  }}
  24.  
  25.  
  26.  
  27. int main () {
  28.  
  29. for(i=0; i<10;i++) {
  30.         printf("Inserire numero: ");
  31.         scanf("%d",n); }
  32.  
  33. bubble_sort(n, 10);
  34.  
  35.  
  36.  
  37. for(i=0; i<10; i++)
  38.         printf("%d\n", n[i]);
  39.  
  40.  
  41.  
  42. return 0; }



Il problema è che, qualunque sequenza di numeri io immetta, l'inpput è sempre questo:

0
0
0
0
0
0
0
0
0
0



..Come faccio a risolvere il problema? Grazie in anticipo.

PM Quote
Avatar
dpstart (Normal User)
Newbie


Messaggi: 5
Iscritto: 13/01/2013

Segnala al moderatore
Postato alle 16:50
Mercoledì, 16/01/2013
Sono un idiota 8-) Ho risolto potete chiudere.

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 17:39
Mercoledì, 16/01/2013
Beh, potresti postare la soluzione, metti che qualcuno ha lo stesso problema, potrebbe tornare utile.

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 22:01
Giovedì, 17/01/2013
Non

scanf("%d", n);

ma

scanf("%d", &n[ i ]);


Ultima modifica effettuata da nessuno il 17/01/2013 alle 22:01


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Ultimo (Member)
Guru


Messaggi: 877
Iscritto: 22/05/2010

Segnala al moderatore
Postato alle 12:14
Venerdì, 18/01/2013

si non solo, ci sono anche altri errori, anzi orrori :yup:


If ok Then GOTO Avanza else GOTO Inizia

PM Quote