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;
}