Certo che non li ascolti i consigli e continui di testa tua:
codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct
{
    char luogo[30];
    float valore;
}rilevazioni;

void sort(rilevazioni *a, int size) {
    int i, j;
    rilevazioni temp;
    for(i = size - 1; i > 0; i--) {
        for(j = 0; j < i; j++) {
            if(a[j].valore < a[j+1].valore) {
                temp = a[j];
                a[j] = a[j+1];
                a[j+1] = temp;
            }
        }
    }
}

int main()
{
    rilevazioni *dati=NULL;
    int size = 0;
    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;
    }
   
    sort(dati, size);

    int i;
    printf("\n\n");
    for(i = 0; i < size; i++) {
        if(dati[i].valore < 33) break;
        printf("Luogo: %s\t\tTasso d'Inquinamento: %f\n", dati[i].luogo, dati[i].valore);
    }
    free(dati);
    return 0;
}