Problema con strutture[C]

di il
4 risposte

Problema con strutture[C]

Salve ragazzi.

Sto provando a svolgere un esercizio in C con una semplice struttura,ma al momento della compilazione mi da errore.

Dopo numerosi tentativi ho provato a chiedere al mio professore e mi ha detto che si tratta di un errore del compilatore
che non accetta la typedef (uso CodeBlocks come ide). Ho provato anche ad eliminare la typedef e,come ultima speranza,
a compilare il programma su una macchina virtuale con ubuntu,ma niente da fare.

Allego il codice e l'errore.

P.S. Ho modificato più volte il programma,scusate per eventuali sciocchezze


#include <stdio.h>
#include <stdlib.h>


#define MAX 50

struct scheda {
    char nome[20];
    char cognome[20];
    int matricola;

};

void inserisci(int n,struct scheda elenco);
int main()
{
    struct scheda elenco[MAX];
    int n;


    //L'UTENTE INSERISCE IL NUMERO DELLE SCHEDE
    printf("\nQuante schede vuoi inserire? ");
    scanf("%d",&n);
    inserisci(n,elenco);
    return 0;
}

void inserisci(int n,struct scheda elenco){

}


Allegati:
20305_15dba96c07527c0514efbb84fde4560b.png
20305_15dba96c07527c0514efbb84fde4560b.png

4 Risposte

  • Re: Problema con strutture[C]

    Non c'entra niente il typedef. Con questa linea:
    
    inserisci(n,elenco);
    
    stai cercando di passare un array a una funzione che accetta un solo elemento.
    Corretto è:
    
    inserisci(n,elenco[i]);
    
  • Re: Problema con strutture[C]

    Naturalmente se devi passare il vettore allora scriverai

    void inserisci(int n,struct scheda elenco[]);
  • Re: Problema con strutture[C]

    Scusami,ma non capisco quella variabile i

    Comunque ho rifatto il programma di nuovo,usando la typedef e continua a non funzionarmi
    Quello che devo fare e' scrivere una funzione che mi inserisca nome,cognome e matricola di n studenti
    L'errore e' sempre lo stesso
    
    #include <stdio.h>
    #include <stdlib.h>
    #define MAX 50
    
    typedef struct {
        char nome[15];
        char cognome[15];
        int matricola;
    
    
    }scheda;
    
    void inserisci_schede(int n,scheda elenco[]);
    
    int main(){
    
    int n,i;
    scheda elenco[MAX];
    
    printf("\nQuante schede vuoi inserire? ");
    scanf("%d",&n);
    inserisci_schede(n,elenco[i]);
    
    
    
    
    return 0;
    }
    
    
    void inserisci_schede(int n,scheda elenco[MAX]){
    int i;
    for( i=0; i<n; i++){
    printf("\nInserisci il nome dello studente: ");
    scanf("%s",&elenco[i].nome);
    printf("\nInserisci il cognome dello studente: ");
    scanf("%s",&elenco[i].cognome);
    printf("\nInserisci la matricola dello studente: ");
    scanf("%s",&elenco[i].matricola);
    
        }
    }
    
    
    
  • Re: Problema con strutture[C]

    Attenzione alle risposte che ti vengono date ...

    Oltre a scrivere

    void inserisci_schede(int n, scheda elenco[])

    chiamerai la funzione passando il vettore

    inserisci_schede(n, elenco);
Devi accedere o registrarti per scrivere nel forum
4 risposte