n° 219
Novembre 2017
Dicembre 11, 2017, 04:20:25 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Linux Windows Techassistance Gameassistance videogame hardware Aiuto Ricerca Agenda Downloads Accedi Registrati  


* Messaggi recenti
Messaggi recenti
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: Bubble sort  (Letto 2719 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
legeo88
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 15


Mostra profilo E-mail
« inserita:: Febbraio 17, 2014, 02:06:25 »

Non riesco a capire dove sbaglio, qualcuno può darmi un aiutino  Ghigno ?

Codice:

#include <stdio.h>
#define dim 10

void crescente (int [], int n);

int main(void)
{

int i;
int n;
int a[dim];
int ord;

do{
printf("se vuoi uscire premi 0\n");
printf("inserisci quanti numeri vuoi inserire\n");
scanf("%d" ,&n);

if(n > 10 || n < 0){
printf(" hai innserito dei valori in validi\n");
}

for(i=0 ; i<n ; i++){
printf("inserisci il valore dell'emento %d\n" ,i+1);
scanf("%d" ,&a[i]);
}

printf("hai inserito i seguenti elementi:\n");

for(i=0 ; i<n ; i++){

printf("elemento:%d -- valore:%d\n" ,i+1,a[i]);

}

printf("come vuoi ordinare gli elementi:\n");
printf("1)Crescente\n");
printf("2)Decrescente\n");
scanf("%d" ,&ord);
if(ord == 1){

crescente(a ,ord);

for(i=0 ; i< ord ; i++)
printf("valore:%d elemento:%d\n" ,i+1,a[i]);
}

}while(n != 0);



return 0;
}

void crescente (int a[], int ord)
{

int tmp, i, j;

for(i=0 ; i<ord ; i++){
for(j=0 ; j<ord-1-i; j++){
if( a[j] > a[j]+1){
tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
}
}
}


Piccolo aggiornamento Sorriso sono riuscito a correggere una parte di codice! ora il programma lo compila, ma quando gli chiedo l'ordinazione in ordine crescente mi stampa solo 1 risultato : D
Registrato
mikykey
Jr. Member
**

Karma: +0/-0
Scollegato Scollegato

Messaggi: 69


Mostra profilo
« Risposta #1 inserita:: Febbraio 17, 2014, 03:34:37 »

nella funzione crescente hai scritto a[j] > a[j]+1
Devi confrontare il valore della cella del vettore quindi devi scrivere cosi a[j] > a[j+1]
Registrato
legeo88
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 15


Mostra profilo E-mail
« Risposta #2 inserita:: Febbraio 17, 2014, 04:21:53 »

errore corretto e capito Sorriso ! grazie Sorriso

Codice:
void crescente (int a[], int n)
{

int tmp, i, j;

for(i=0 ; i<n ; i++){
for(j=0 ; j<n-1-i; j++){
if( a[j] > a[j+1]){
tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
}
}
}
Registrato
Pagine: [1]   Vai su
  Stampa  
 
Vai a:  

Copyright © 2017 Edizioni Master SpA. p.iva : 02105820787

Tutti i diritti di proprietà letteraria e artistica riservati. - Privacy



powered by Simple Machines