Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636

    poblema ordinamento alfabetico (in C)

    ciao a tutti..ho fatto questo programmino
    va tutto bene tranne l'ordinamento alfabetico..cioè non mi ordina alfabeticamente (in ordine crescente) per cognome..credo sia tutto ok..ma non mi ordina

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <math.h>
    
    #define maxcar 25
    #define massimo 100
    /*
     * 
     */
    int main() {
    
        struct studente {
            char cognome[maxcar];
            char nome[maxcar];
            int scritto;
            int orale;
            double media;
           } studenti[massimo];
    
    
           int i, j;
           int n;
           char buffer [maxcar];
           double oral;
           double scrit;
    
           printf ("inserisci numero studenti : \n");
           scanf ("%d", &n);
    
           if ( n >= 3){
               for (i = 0; i <= massimo && i <= n - 1; i++){
                   printf ("cognome : ");
                   scanf ("%s", studenti[i].cognome);
                   printf ("nome : ");
                   scanf ("%s", studenti[i].nome);
                   printf ("scritto : ");
                   scanf ("%d", &studenti[i].scritto);
                   printf ("orale : ");
                   scanf ("%d", &studenti[i].orale);
               }
    
               for (i = 0; i <= massimo && i <= n - 1; i++){
                   for (j = i + 1; j <= massimo && j <= n; j++){
                       if (strcmp(studenti[i].cognome,studenti[j].cognome) == -1){
                           strcpy(buffer,studenti[j].cognome);
                           strcpy(studenti[j].cognome,studenti[i].cognome);
                           strcpy(studenti[i].cognome,buffer);
                           strcpy(buffer,studenti[j].nome);
                           strcpy(studenti[j].nome,studenti[i].nome);
                           strcpy(studenti[i].nome,buffer);
                           scrit = studenti[j].scritto;
                           studenti[j].scritto = studenti[i].scritto;
                           studenti[i].scritto = scrit;
                           oral = studenti[j].orale;
                           studenti[j].orale = studenti[i].orale;
                           studenti[i].scritto = oral;
    
                       }
                   }
                    printf ("\n\ntabella in ordine alfabetico\n");
                    printf ("\n%10s%10s%10s%10s\n","COGNOME","NOME","SCRITTO","ORALE");
                         for (i = 0; i <= massimo && i <= n - 1; i++){
                        printf ("\n%10s%10s%10d%10d", studenti[i].cognome, studenti[i].nome, studenti[i].scritto, studenti[i].orale);
                   }
               }
              
    
    
               printf ("\n\nstudenti con media >= 18\n");
               printf ("\n%10s%10s%10s%10s\n","COGNOME","NOME","SCRITTO","ORALE");
               for (j = 0; j <= massimo && j <= n - 1; j++){
                   studenti[j].media = ((double)studenti[j].scritto + (double)studenti[j].orale) / 2;
                   if (studenti[j].media >= 18){
                       
                       printf ("\n%10s%10s%10d%10d", studenti[j].cognome, studenti[j].nome, studenti[j].scritto, studenti[j].orale);
                   }
               }
               printf ("\n\nriepilogo voti\n");
               printf ("\n%10s%10s%10s%10s%10s\n","COGNOME","NOME","SCRITTO","ORALE","MEDIA");
                 for (j = 0; j <= massimo && j <= n - 1; j++){
                     
                    printf ("\n%10s%10s%10d%10d%10.lf", studenti[j].cognome, studenti[j].nome, studenti[j].scritto, studenti[j].orale, studenti[j].media);
                   }
               }else{
               printf ("n minore di 3\n");
               }
    
    
           
         return 0;
    }
    dove sbaglio?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636
    scusate..potete cancellare questo thread ?
    io non riesco a farlo
    grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.