Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [C] Errori di compilazioni programma che ordina una serie di parole.

    La prova propone di scrivere un programma che ordini una serie di parole immesse dall'utente e che le stampi.
    La lettura deve essere interrotta quando viene immessa una "parola vuota".
    Ogni parola deve essere salvare in una stringa allocata dinamicamente e deve essere usato un vettore di puntatori per tenere traccia di tutte le stringhe immesse.
    Per ordinare il vettore si suggerisce di utilizzare la funziona "qsort".

    Ora vi propongo il mio codice:

    codice:
    #include <stdio.h> 
    #include <stdlib.h> 
    #include <string.h> 
    #define MAX_LUN 20 
    #define MAX_WORD 50 
    int read_line(char str[], int n); 
    int compare(const char str1, const char str2); 
    int main(void)
     {   int i, j;  
         char parola[MAX_LUN];  
         char *reminders[MAX_WORD];    
         printf("Inserisci le parole");     
         for(;; )  
           {   i = 0; 
    	   read_line(parola, MAX_LUN); 	 
    	   if(strcmp(parola,"\n") == 0) 	 
                  break; 	   	
               reminders[i] = malloc(strlen(parola) + 1); 	 
    	   if(reminders[i] == NULL) 	 
                  { printf("vettore pieno\n"); 	    
                          break;      
                  } 	 	
    
              strcpy(reminders[i], parola); 
    	   i++; 	
            } 	  
    
           qsort(reminders[0], i, MAX_LUN, compare);   
           for(j = 0; j < i; j++)   
               printf("%s\n", reminders[j]);      
           return 0; 
      }     
    
     int read_line(char str[], int n)  
     {   int ch, i=0; 	
         while((ch = getchat()) != '\n') 	 ù
         if (i < n) 	    
         str[i++] = ch;   
         str[i] = /0; 	
         return i;
       }     
    
     int compare(const char str1, const char str2)  
     {  if(strcmp(str1, str2) < 0) 	 
            return -1; 	 
         else 	  
            if(strcmp(str1,str2) == 0) 	
    	  return 0; 		
            else 		  
              return 1; 		
      }
    Ho dei dubbi sugli argomenti della funzione qsort.
    Il compilatore, però, mi da anche altri errori che non riesco proprio a capire.
    Potreste aiutarmi?
    Grazie mille in anticipo.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    str1 e str2 devono essere puntatori a char e non semplici char
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.