Problema con C++, vettore in un record

di il
3 risposte

Problema con C++, vettore in un record

Riporto solo la funzione "inserimento", nella quale non riesco a inserire un vettore di 10 posizioni contenente le medie delle 10 materie per ogni alunno.

int inserimento (record abc[])
{
int n;
do
{
cout<<"INSERIRE IL NUMERO DI STUDENTI"<<endl;
cin>>n;
if (n<0 or n>25);
{
cout<<"IL NUMERO INSERITO NON E' VALIDO, INSERIRE UN NUMERO COMPRESO TRA 1 E 25"<<endl;
}
}
while (n<0 || n>25);
for (int i=0; i<n; i++)
{
cout<<"STUDENTE NUMERO "<<i+1<<endl;
do
{
fflush(stdin);
cout<<"INSERIRE IL CODICE STUDENTE"<<endl;
gets(abc.codice);
}
while (strlen(abc.codice)<4 || strlen(abc.codice)>6);
do
{
fflush(stdin);
cout<<"INSERIRE NOME E COGNOME DELLO STUDENTE"<<endl;
gets(abc.nome);
}
while (strlen(abc.nome)<1 || strlen(abc.nome)>30);
do
{
fflush(stdin);
cout<<"INSERIRE LA CLASSE DELLO STUDENTE"<<endl;
gets(abc.classe);
}
while (strlen(abc.classe)<1 || strlen(abc.classe)>3);
do
{
cout<<"INSERIRE I CREDITI DELLO STUDENTE"<<endl;
cin>>abc.credito;
}
while (abc[i].credito<1 || abc[i].credito>20);
}
QUI DOVREI INSERIRE I VOTI DELLE 10 MATERIE, MA NON SO COME FARE, PRESUMO DOVREI UTILIZZARE UN VETTORE BIDIMENSIONALE
return n;
}

3 Risposte

  • Re: Problema con C++, vettore in un record

    Usa i tag CODE (pulsante < / >) che altrimenti non si capisce nulla.

    Il codice riportalo tutto: già alla prima riga hai un "record" che non si sa cosa sia

    fflush(stdin) è undefined behavior secondo lo standard
  • Re: Problema con C++, vettore in un record

    Weierstrass ha scritto:


    Usa i tag CODE (pulsante < / >) che altrimenti non si capisce nulla.

    Il codice riportalo tutto: già alla prima riga hai un "record" che non si sa cosa sia

    fflush(stdin) è undefined behavior secondo lo standard
    Sto cercando di inserire le 10 materie con un vettore bidimensionale (non sono molto ferrato in materia, penso sia un vettore bidimensionale), però mi dà un errore: [Error] invalid types 'int[int]' for array subscript. Penso sia un problema relativo alla dichiarazione del vettore
    #include <iostream>
    #include <cstdlib>
    #include <cstring>
    #define NUMERO 10
    using namespace std;

    struct record
    {
    char codice[4], nome[30], classe[1];
    int credito;
    };

    float somma[10], m[10];
    int inserimento(record[]);
    float media(record[], int);
    void giudizio (record[], int);
    void credito (record[], int);
    void stampa (record[], int);

    int main()
    {
    record abc[NUMERO];
    int n, scelta, risp;
    float m;
    do
    {
    n=inserimento(abc);
    do
    {
    cout<<"schiaccia: 1-MEDIA | 2-GIUDIZIO | 3-CREDITO | 4-STAMPA | 5-USCIRE"<<endl;
    cin>>scelta;
    switch (scelta)
    {
    case 1:m=media(abc,n);break;
    case 2:giudizio(abc,n);break;
    case 3:credito(abc,n);break;
    case 4:stampa(abc,n);break;
    case 5:cout<<"FINE SCELTE. USCITA IN CORSO..."<<endl;break;
    default:cout<<"SCELTA ERRATA, SCEGLI UN NUMERO DA 1 A 5"<<endl;
    }
    }
    while (scelta!=5);
    cout<<"SCHIACCIA: 1-VUOI RIPETERE L'INTERO PROGRAMMA 2-USCIRE"<<endl;
    cin>>risp;
    }
    while (risp==1);
    return 0;
    }

    int inserimento (record abc[])
    {
    float somma=0;
    int n;
    do
    {
    cout<<"INSERIRE IL NUMERO DI STUDENTI"<<endl;
    cin>>n;
    if (n<0 or n>25);
    {
    cout<<"IL NUMERO INSERITO NON E' VALIDO, INSERIRE UN NUMERO COMPRESO TRA 1 E 25"<<endl;
    }
    }
    while (n<0 || n>25);
    for (int i=0; i<n; i++)
    {
    cout<<"STUDENTE NUMERO "<<i+1<<endl;

    do
    {
    fflush(stdin);
    cout<<"INSERIRE IL CODICE STUDENTE"<<endl;
    gets(abc.codice);
    }
    while (strlen(abc.codice)<4 || strlen(abc.codice)>6);

    do
    {
    fflush(stdin);
    cout<<"INSERIRE NOME E COGNOME DELLO STUDENTE"<<endl;
    gets(abc.nome);
    }
    while (strlen(abc.nome)<1 || strlen(abc.nome)>30);

    do
    {
    fflush(stdin);
    cout<<"INSERIRE LA CLASSE DELLO STUDENTE"<<endl;
    gets(abc.classe);
    }
    while (strlen(abc.classe)<1 || strlen(abc.classe)>3);

    do
    {
    cout<<"INSERIRE I CREDITI DELLO STUDENTE"<<endl;
    cin>>abc.credito;
    }
    while (abc[i].credito<1 || abc[i].credito>20);

    for (int j=0; j<11; j++)
    {
    do
    {
    cout<<"INSERISCI LA MEDIA DELLA MATERIA "<<j+1<<endl;
    cin>>abc[i].media[j];
    }
    while (abc[i].media[j]<1 || abc[i].media[j]>10);
    }


    return n;
    }
  • Re: Problema con C++, vettore in un record

    I tag CODE!
Devi accedere o registrarti per scrivere nel forum
3 risposte