Originariamente inviata da
MItaly
Come ti è già stato detto, qui non si fornisce la "pappa pronta" (che non serve a niente), ma si cerca di indirizzare nella direzione giusta, correggendo il lavoro svolto e eventualmente dando indicazioni utili.
Nel caso specifico, per il bubble sort trovi milioni di descrizioni in pseudocodice su Internet, quindi il primo passo è cercare di capire la
descrizione dell'algoritmo e tradurla in C; prova a fare questo, posta il codice ottenuto e se incontri problemi cercheremo di correggerli insieme.
Per stampare a video i valori superiori a 33, basta un for che cicla su tutto l'array e un if all'interno per vedere se l'elemento corrente è superiore a 33...
questo è quello che ho provato :
codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct
{
char luogo[30];
float valore;
}rilevazioni;
int main()
{
rilevazioni *dati=NULL;
int size = 0;
int i, j, temp, n ;
char luogo[30];
while(1)
{
printf("Inserisci luogo: ");
scanf("%s", luogo);
if(strcmp(luogo, "end")==0) break;
dati = (rilevazioni *)realloc(dati, sizeof(rilevazioni)*(size+1));
strcpy(dati[size].luogo, luogo);
printf("Inserisci tasso d'inquinamento: ");
scanf("%f", &dati[size].valore);
size += 1;
}
for(size=1;size<n;size++)
{
for(i=0; i<n; i++)
{
if(dati[i]>dati[i+1])
{
temp=dati[i];
dati[i]=dati[i+1];
dati[i+1]=temp;
}
}
}
printf ( "\n\nArray dopo sistemazione:\n") ;
for ( i = 0 ; i <n ; i++ )
printf ( "%d\t", dati[i] ) ;
getch();
}
}