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

    [C] Problemi con Pelles C!

    Salve a tutti, ho un problema riguardante Pelles C.
    Questo è un semplice esercizio sulle strutture, ma non riesco a compilare perchè mi dà questi errori:

    1) warning #2145: Assignment of 'struct studente *' to '(incomplete) struct studente *'
    2) error #2120: Redeclaration of 'inserisci', previously declared at C:\Users\Alessia\Documents\Pelles C Projects\gioco.c(8); expected 'void __cdecl function(int, (incomplete) struct studente *)' but found 'void __cdecl function(int, struct studente *)'.

    L'esercizio riguarda solamente l'inserimento e la stampa del Nome,Cognome, e Voto di 3 studenti.Questo è il codice:

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    #define LEN_NAME 10	
    #define LEN_COGN 20
    #define N 3		//numero degli studenti da inserire
    
    void inserisci(int n, struct studente v[]);
    void stampa(int n, struct studente v[]);
    
    struct studente
    {
    	char nome[LEN_NOME+1];
    	char cognome[LEN_COGN+1];
    	int voto;
    };
    
    
    int main(void)
    {
    	struct studente vett[N];	//vettore di struttura dove inserisco nome,cognome e voto dei 3 studenti
    
    	inserisci(N,vett);
    	stampa(N,vett);
    
    	return 0;
    }
    //-------Funzione inserisci()----------------
    void inserisci(int n, struct studente v[])
    {
    		int i;
    
    		for(i=0; i<=N; i++)
    		{
    			printf("Nome, Cognome, Voto\n");
    			scanf("%s\n", v[i].nome);
    			scanf("%s\n",v[i].cognome);
    			scanf("%d\n",&v[i].voto);
    		}
    }
    //--------Funzione stampa()---------------------------
    void stampa(int n, struct studente v[])
    {
    		int i;
    
    		for(i=0; i<=N; i++)
    		{
    			printf("%s\t%s\t%d\n", v[i].nome,v[i].cognome,v[i].voto);
    		}
    }
    Grazie in anticipo!!!
    CIAO

  2. #2
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    E' un banale errore di scrittura: al posto di LEN_NAME hai scritto LEN_NOME:

    codice:
    struct studente
    {
    	char nome[LEN_NOME+1];        // hai definito LEN_NAME
    	char cognome[LEN_COGN+1];
    	int voto;
    };

  3. #3
    Me ne sono accorta e l'ho corretto.
    Ma non è questo il motivo, perchè mi dà gli stessi errori comunque!

    Riposto il codice:

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    #define LEN_NOME 10	
    #define LEN_COGN 20
    #define N 3		//numero degli studenti da inserire
    
    void inserisci(int n, struct studente v[]);
    void stampa(int n, struct studente v[]);
    
    struct studente
    {
    	char nome[LEN_NOME+1];
    	char cognome[LEN_COGN+1];
    	int voto;
    };
    
    
    int main(void)
    {
    	struct studente vett[N];	//vettore di struttura dove inserisco nome,cognome e voto dei 3 studenti
    
    	inserisci(N,vett);
    	stampa(N,vett);
    
    	return 0;
    }
    //-------Funzione inserisci()----------------
    void inserisci(int n, struct studente v[])
    {
    		int i;
    
    		for(i=0; i<=N; i++)
    		{
    			printf("Nome, Cognome, Voto\n");
    			scanf("%s\n", v[i].nome);
    			scanf("%s\n",v[i].cognome);
    			scanf("%d\n",&v[i].voto);
    		}
    }
    //--------Funzione stampa()---------------------------
    void stampa(int n, struct studente v[])
    {
    		int i;
    
    		for(i=0; i<=N; i++)
    		{
    			printf("%s\t%s\t%d\n", v[i].nome,v[i].cognome,v[i].voto);
    		}
    }

  4. #4
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Probabilmente allora è pelles,sul mio code::blocks non da errori e viene eseguito,dai un' occhiata a code::blocks.

  5. #5
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Originariamente inviato da ramy89
    sul mio code::blocks non da errori e viene eseguito.
    Strano. Dovrebbe segnalare qualcosa dato che struct studente è usato prima di essere definito.

    @Alessia1984.

    Inverti l'ordine tra prototipi e struttura come qui sotto.
    (Per inciso, la condizione dei for è sbagliata: dev'essere i<N non i<=N )
    codice:
    struct studente
    {
    	char nome[LEN_NOME+1];
    	char cognome[LEN_COGN+1];
    	int voto;
    };
    
    void inserisci(int n, struct studente v[]);
    void stampa(int n, struct studente v[]);
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Dev e Code::Blocks (se usato di default con mingw) segnalano un warning in quel caso compilando con -Wall. Consiglio comunque di rivedere anche l'uso di '\n' all'interno delle scanf()...
    every day above ground is a good one

  7. #7
    Grazie shodan!!
    Inverti l'ordine tra prototipi e struttura come qui sotto. (Per inciso, la condizione dei for è sbagliata: dev'essere i<N non i<=N )
    Ho scambiato i prototipi ed ora funziona!

    Grazie a tutti!!!

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.