Visualizzazione dei risultati da 1 a 10 su 10
  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,480
    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,480
    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
    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.

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    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.

  10. #10
    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!

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