Ordinamento

di il
4 risposte

Ordinamento

Salve,ho iniziato da poco a studiare questo linguaggio quindi non ne capisco molto,ho bisogno di risolvere questo problema,chi mi aiuta? Specialmente con l`ordinamento.
Il problema è il seguente: un teatro intende creare una tabella per una più efficiente gestione della vendita dei biglietti. I posti in teatro sono organizzati in settori. Ogni settore ha un numero totale di posti e per ognuno la numerazione parte da 1. Codificare una soluzione che consenta di visualizzare la tabella ordinata in ordine crescente rispetto ai posti liberi.

4 Risposte

  • Re: Ordinamento

    Okay, ma è necessario che tu ci dica cosa pensi di fare ...
  • Re: Ordinamento

    Si scusami, avevo pensato di iniziare così ma non so cosa ci sia di giusto...
    #include <stdio.h>
    #include <stdlib.h>
    #define max 50

    typedef struct{
    int postitotali;
    int numerazione;
    int postiliberi;
    }settori_t;

    void inserisci_dati(settori_t sett[], int num);
    void ordinamento(settori_t sett[], int num);
    void visualizza_dati(settori_t sett[], int num);

    int main()
    {
    int scelta;
    printf("Cosa vuoi fare?");
    printf("1 inserisci_dati");
    printf("2 ordinamento");
    printf("3 visualizza_dati");
    switch(scelta)
    {

    case 1:printf( "inserisci i dati");
    break;
    case 2:printf("ordina");
    break;
    case 3: printf("visualizza i dati");
    break;
    }
    system("pause");
    return 0;
    }
  • Re: Ordinamento

    Il C mette già a disposizione in stdlib.h una funzione per l'ordinamento molto versatile, ovvero la .
    Questo è un esempio di come utilizzarla con un vettore di interi:
    
    #include <stdio.h>
    #include <stdlib.h>
    #define N 10
    
    typedef int (*ptr) (const void *a, const void *b);
    
    int cmp(int *a,int *b)
    {
    return (*a-*b);
    }
    
    int main()
    {
    int vett[N]={4,304,45,3,7,9,19,405,-10,56};
    int i;
    qsort(vett,N,sizeof(int),(ptr)cmp);
    puts("Vettore ordinato:");
    for(i=0;i<N;i++)
        printf("%d\n",vett[i]);
    return 0;
    }
    L'unica cosa un po' particolare è la scrittura della funzione cmp, ma in sostanza deve soltanto agire come la strcmp() con 2 elementi generici della base dati che si desidera ordinare.
  • Re: Ordinamento

    Il problema è che sono proprio alle prime armi e imparare da sola tutto quanto non è semplice, almeno per me...provo a fare problemi ma mi danno sempre errori o non funzionano come dovrebbero. Diciamo che cercavo il modo più semplice per inserire i dati, ordinarli e stamparli.
Devi accedere o registrarti per scrivere nel forum
4 risposte