Visualizzazione dei risultati da 1 a 10 su 10

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    9

    ORDINAMENTO in C non funziona! Posto il codice! Grazie!!

    codice:
    #include <stdio.h>
    
    
    struct persona{
    	int codice;
    	char cognome[30];
    	char nome[30];
    	double stipendio;
    };
    
    
    struct persona elem[30];
    
    
    int codicedaricercare;
    int i=0;
    int torna;
    
    
    int sceltamenu;
    char cognomedaricercare[30];
    int numeropersone;
     int max=0; 
    main(){
      
        
        
    	
    	do{
    		
    	system("cls");
    	printf(" ||INIZIO PROGRAMMA||");
    	printf("\nQuante persone vuoi inserire?\n");
    	scanf("%d",&numeropersone);
    	
    	while(i<numeropersone){
    	
    	printf("\nInserisci codice\n");
    	scanf("%d",&elem[i].codice);
    	
    	printf("Inserisci cognome\n");
    	scanf("%s",elem[i].cognome);
    	
    	printf("Inserisci nome\n");
    	scanf("%s",elem[i].nome);
    	
    	printf("Inserisci stipendio\n");
    	scanf("%ld",&elem[i].stipendio);
    	printf("\n\n");
    	
    	max=i;
    	i++;
    	
    	
    	
    	
    	
    }    //fine while inserimento dati
    	
    	
    	printf("\nMENU\n1-Ricerca per codice\n2-Ricerca per cognome\n3-Ordinamento crescente per codice\n");
    	scanf("%d",&sceltamenu);
    	
    	
    	switch(sceltamenu){
    		
    		case 1:
    		ricercapercodice();
    		break;
    		
    		
    		case 2:
    		ricercapercognome();	
    		break;
    		
    		case 3:
    		ordinamentocrescentecodice();
    		//break;
    		
    		case 4:
    		
    		break;
    		
    		case 5:
    		break;
    		
    		case 6:
    		break;
    		
    		default:
    		break;
    		
    }   //switch
            
    		printf("\nSi desidera tornare al Menu' Principale?\n");
    		printf("[1] Si, desidero tornare al Menu' Principale\n");
    		printf("[0] No, desidero uscire\n");
    		printf("Effettua la tua scelta: ");
    		scanf("%d",&torna);
    	
    }    //fine do
    	
        
    
    
    while (torna!=0);
    	
    	
    	
    
    
    	
    	
    	
    }//fine main
    
    
    
    
    
    
    void ricercapercodice(){ //codice da ricercare
    	
    			
    		printf("\nDigita codice da ricercare\n");
    		scanf("%d",&codicedaricercare);
    		
    		for(i=0;i<max&&codicedaricercare!=elem[i].codice;i++);
    		
    		if(codicedaricercare==elem[i].codice){
    			printf("\nCodice:%d,Cognome: %s,Nome: %s,Stipendio: %ld\n",elem[i].codice,elem[i].cognome,elem[i].nome,elem[i].stipendio);
    		     }
    		else 
    		printf("\nCodice non trovato!\n");
    }
    
    
    
    
    
    
    void ricercapercognome(){ //ricercapercognome
    	
    	
    	printf("\nDigita cognome da ricercare\n");
    	scanf("%s",cognomedaricercare);
    	
    	for(i=0;i<max&&strcmp(cognomedaricercare,elem[i].cognome)!=0;i++);
    	
    	if(strcmp(cognomedaricercare,elem[i].cognome)==0){
    	printf("\nCodice:%d,Cognome: %s,Nome: %s,Stipendio: %ld\n",elem[i].codice,elem[i].cognome,elem[i].nome,elem[i].stipendio);	
    	}
    	else 
    		printf("\nCodice non trovato!\n");
    	
    	
    
    
    
    
    void ordinamentocrescentecodice(){ //ordinamento crescente per codice
    	struct persona temp;
    	i=0;
    	printf("\n");
    	
    	
    	while(i<max){
    		if(elem[i].codice > elem[i+1].codice){
    		temp=elem[i];	
    		elem[i]=elem[i+1];
    		elem[i+1]=temp;
    		i=0;
    		}
    		else{
    			i++;
    		}
    	}
    	
    	
    	
    		for(i=0;i<=max;i++){
    			printf("\nCodice:%d,Cognome: %s,Nome: %s,Stipendio: %ld\n",elem[i].codice,elem[i].cognome,elem[i].nome,elem[i].stipendio);
    	    }
    	
    	
    	
    	
    	
    	
    	
    }
    
    
    	
    	
    	
    	
    	
    	
    }
    Ultima modifica di MItaly; 31-05-2015 a 00:54

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Usa i tag CODE per il codice, grazie!

    E magari, dicci qualcosa in più oltre a "non funziona" ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    9

    Re-

    Purtroppo non so cosa sia il tag code, sono nuovo, comunque sia il codice non fa l'ordinamento, anzi non parte proprio il programma!

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Per i tag basta leggere il regolamento. Se il codice non è presentato chiaramente, non è detto che si possa rispondere.

    Comunque, hai errori in compilazione?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    9

    Re.

    113 [Warning] conflicting types for 'ricercapercodice' [enabled by default]
    64 [Note] previous implicit declaration of 'ricercapercodice' was here


    Mi da questi errori in fase di compilazione, cioè sul punto -->void ricercapercodice(){.

    Il problema è che se commento questo metodo ricercapercodice, l'errore mi passa sull'altro metodo ->void ricercacognome.

    Se invece commento tutto il metodo dell'ordinamento il programma funziona bene(quindi penso sia qui il problema). Il problema è che quando l'ordinamento è senza commento ho i problemi di cui parlavo prima: errore a partire dal metodo ricercapercodice.

    Ma l'ordinamento mi serve per il programma senza commento ovviamente!

  6. #6
    Utente di HTML.it L'avatar di MySQL
    Registrato dal
    May 2015
    Messaggi
    729
    Hai chiamato ricercapercodice prima di averla definita.
    Quindi o la sposti prima, o la dichiari a priori.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    9
    Anche dichiarando i prototipi non compila ancora

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Quote Originariamente inviata da Abe++ Visualizza il messaggio
    Anche dichiarando i prototipi non compila ancora
    Se non compila, non compilerà per magia.

    Devi riportare i primi 2 o 3 errori, esaminarne uno, risolverlo e ricompilare.

    Se non si vedono gli errori, come si fa?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    9

    Risolto

    Vi ringrazio ho risolto, in effetti mancava la parentesi graffa alla fine del metodo ricercapercognome() e c'era una graffa in più alla fine! Peccato che il devC++ non lo dica in modo chiaro riguardo questi errori...! Vi ringrazio, saluti!

  10. #10
    Non complila anche se aggiungi le dichiarazioni delle funzioni, perché c'è una funzione "fusa" in un'altra, errore banale generato da troppi e maldestri copia e incolla eseguiti in tutta fretta ...
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

Tag per questa discussione

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 © 2026 vBulletin Solutions, Inc. All rights reserved.