Buona sera,sono uno studente di informatica alle prese con il linguaggio c,dopo aver compilato il codice di un esercizio mi ritrovo con un codice pieno di errori che non riesco a risolvere,se ce qualcuno di buon cuore che può dare un'occhiata per togliermi dai guai visto che ho la consegna per questa sera,grazie in anticipo,vi posto il codice.
/librerie
#include <stdlib.h>
#include<stdio.h>
#include <string.h>
//costanti
#define maxcaratteri 100
#define maxalunni 500
#define maxclassi 20
#define maxalt 10
typedef char stringa[maxcaratteri];
stringa nom[maxalunni];
stringa classe[maxalunni];
stringa classe2[maxclassi];
//stringa appstringa[maxalunni];
//prototipi
int leggisc1 (int*);
int leggisc2(int*);
void acquisiscii (char, int, stringa[], stringa[], float, int, char, int, stringa[], int, int*, int*, int*, int*);
void menu (char, int, stringa[], stringa[], float, int, char, int, stringa[], int, int, int, int, int );
//inizio
int main ()
{
//dichiarazione delle variabili
int n, cod[maxalunni], k, iscriz[maxclassi], sc1, sc2, ore1[maxalunni], cer, contesa, ore2[maxalt];
float media[maxalunni];
char altsc[maxalunni], alternanz[maxalt];
//fine dicchiarazione delle variabili
sc1 = leggisc1 (& sc1);
while (sc1== 1)
{
acquisiscii (altsc, cod, nom, classe, media, ore1, alternanz, ore2, classe2, iscriz, &n, &k, &cer, &contesa);
sc2 = leggisc2 (& sc2);
while (sc2 != 7)
{
menu(altsc, cod, nom, classe, media, ore1, alternanz, ore2, classe2, iscriz, n, k, cer, contesa, sc2);
sc2 = leggisc2 (&sc2);
}
sc1 = leggisc1(& sc1);
}
}
//leggisc1
int leggisc1 (int* xsc1)
{
printf("Salve, desidera inserire nuovi dati?\n");
scanf ("%d",&xsc1);
while ( xsc1 != 1 || xsc1 != 2)
{
printf("Inserire dati corretti\n");
scanf ("%d",&xsc1);
}
return xsc1;
}
//leggisc2
int leggisc2 (int* xsc2)
{
printf("Effettuare 1 tra le seguenti scelte\n");
printf("1 Controllo della correttezza delle informazioni relative al numero degli alunni per classe\n 2 Visualizzazione per ciascuna classe del numero di alunni promossi\n3 Calcolo del numero di alunni che hanno esaurito l’attività di alternanza scuola-lavoro\n4 Inserimento di un nuovo alunno in una classe prevedere condizioni di insuccesso\n5 Cancellazione di una classe con i relativi alunni\n6 Calcolo del numero di alunni che hanno erroneamente indicato la partecipazione ad una alternanza;\n7 Fine del programma.\n");
scanf ("%d",&xsc2);
while (xsc2 < 0 || xsc2 > 7)
{
printf("Inserire scelta corretta\n");
scanf ("%d",&xsc2);
}
return xsc2;
}
//acquisisci i
void acquisiscii (char xaltsc[maxalunni], int xcod[maxalunni], stringa xnom[maxalunni], stringa xclasse[maxalunni], float xmedia[maxalunni], int xore1[maxalunni], char xalternanz[maxalt], int xore2[maxalt], stringa xclasse2[maxclassi],int xiscriz[maxclassi], int* xn, int* xk, int* xcer, int* xcontesa)
{
int i, j, x, trov,cont, app3;
stringa app [maxalunni];
char app2;
//acquisisci classi
//leggi k
printf("Inserire il numero di classi\n");
scanf("%d",&xk);
while (xk <= 0 || xk > 20)
{
printf("Inserire il numero di classi\n");
scanf("%d",&xk);
}
//fine leggi k
j = 0;
while (j != xk)
{
//classe 2 univoca
trov = 1;
while (trov == 1)
{
printf("Inserire la classe");
gets(app);
fflush(stdin);
if (j = 0)
{
xclasse2[j] = app;
trov = 0;
}
else
{
//ricerca xclasse2
cont = 0;
trov = 0;
while (cont != j && trov = 0)
{
if (app = xclasse2[cont])
{
trov = 1;
}
else
{
cont = cont +1;
}
}
//fine ricerca xclasse 2
if (trov == 0)
{
xclasse2[j]= app;
}
else
{
printf("Classe già presente\n");
}
}
}
//fine classe 2 univoca
printf("Inserire gli alunni iscritti alla classe\n");
scanf("%d",&xiscriz[j]);
j = j + 1;
}
//fine acquisisci classi
//acquisisci alternanze
x = 0;
while (x != 10)
{
//leggi alternanz
trov = 1;
while (trov == 1)
{
printf("Inserire l'alternanza\n'");
getchar(app2);
if (x == 0)
{
xalternanz[x] = app
trov = 0;
}
else
{
//ricerca alternanza
cont = 0;
trov = 0;
while (cont != x && trov == 0)
{
if (app == xaltern[x])
{
trov = 1;
}
else
{
cont = cont + 1;
}
}
//fine ricerca alternanza
if (trov == 0)
{
xalternanz[x] = app;
}
else
{
printf("Alternanza già presente\n");
}
}
}
//fine leggi alternanz
printf("Inserisci le ore di alternanza\n");
scanf("%d",&xore2[x]);
x = x + 1;
//fine acquisisci alternanz
}
//acquisisci alunni
*xcer = 0;
*xcontesa = 0;
//leggi xn
printf("Inserire il numero di alunni\n");
scanf("%d",&xn);
while (xn < 0 || xn >500)
{
printf("Inserire il numero di alunni\n");
scanf("%d",&xn);
}
//fine leggi xn
i = 0;
while (i != xn)
{
printf("Inserire l'alternanza scelta\n");
scanf("%d",&xaltsc);
//leggi xcod univoco
trov = 1;
while (trov == 1)
{
printf("Inserire il codice dell'alunno'");
scanf("%d",&app3);
if (i == 0)
{
xcod = app;
trov = 0;
}
else
{
//ricerca codice
cont = 0;
trov = 0;
while (cont != i && trov == 0)
{
if (app == xcod[cont])
{
trov = 1;
}
else
{
cont = cont + 1;
}
}
//fine ricerca codice
if (trov == 0)
{
xcod = app;
}
else
{
printf("Codice già presente");
}
}
}
//fine leggi xcod univoco
printf("Inserire nome e cognome dell'alunno\n'");
gets(xnom);
fflush("stdin");
//classe giusta
trov = 0;
while (trov == 0)
{
printf("Inserire la classe dell'alunno\n");
gets(app);
fflush("stdin");
//ricerca classe
cont = 0;
while (cont != xk && trov == 0)
{
if (app == xclasse[cont])
{
trov = 1;
}
else
{
cont = cont+ 1;
}
//fine ricerca classe
}
if (trov == 1)
{
xclasse = app;
}
else
{
printf("Classe inesistente");
}
}
//fine classe giusta
//media giusta
printf("Inserire la media dell'alunno\n'");
scanf("%d",&xmedia);
while (xmedia > 10 || xmedia < 0)
{
printf("Inserire la media dell'alunno\n'");
scanf("%d",&xmedia);
}
//fine media giusta
//inizio leggi ore 1
printf("Inserire le ore che l'alunno ha fatto di alternanza\n'");
scanf("%d",&xore1);
//contaeronea
trov = 0;
//ricerca alt sc
x = 0;
cont = 0;
while (cont != 10 && trov == 0)
{
if (xaltsc[i] == xalternanz[x])
{
trov = 1;
}
else
{
x = x +1;
cont = cont + 1;
}
}
//fine ricerca altsc
if (trov == 0)
{
*xcer = *xcer +1;
}
//fine contaeronea
if (trov == 1)
{
//contaesaurita
if (xore1[i] == xore2[x])
{
*xcontesa = *xcontesa + 1;
}
else
{
*xcer = *xcer + 1;
}
}
//fine contaesaurita
i = i + 1;
}
return ;
}
//inizio menu
void menu(int xsc2, char xaltsc[maxalunni], int xcod[maxalunni], stringa xnom[maxalunni], stringa xclasse[maxalunni], float xmedia[maxalunni], int xore1[maxalunni], char xalternanz[maxalt], int xore2[maxalt], stringa xclasse2[maxclassi], int xiscriz[maxclassi], int xn, int xk, int xcer, int xcontesa)
{
int j,i,cont,trov,a,app3;
char app2;
stringa app[maxalunni]
if (xsc2 == 1)
{
//correttezza
j = 0;
while (j != xk)
{
i = 0;
//conta
cont = 0;
while (i != xn-1)
{
if (xclasse2[j] == xclasse[i])
{
cont = cont + 1;
}
i = i + 1;
}
//fine conta
if (cont == xiscriz[j])
{
printf("Informazioni corrette");
}
else
{
printf("Informazioni non corrette");
}
j = j + 1;
}
//fine correttezza
}
else
{
if (xsc2 == 2)
{
//promossi
j = 0;
while (j != xk)
{
cont = 0;
//controllo promossi
i = 0;
while (i != xn)
{
if (xclasse2[j] == xclasse[i])
{
if (xmedia[i] >= 6)
{
cont = cont +1;
}
}
i = i + 1;
}
printf("I promossi per la classe %s sono\n;",xclasse2[j]);
printf("%d\n",cont)
//fine controllo promossi
j = j + 1;
}
}
else
{
if (xsc2 == 3)
{
//esaurimento alt
printf("Gli alunni che hanno esaurito l'alternanza scuola lavoro sono %d",xcontesa);
//fine esaurimento alt
}
else
{
if (xsc2 == 4)
{
//inserimento
if (xn == 500)
{
printf("Limite alunni raggiunto");
}
else
{
//inserisci alunno
i = xn;
printf("Inserire l'alternanza scelta\n");
scanf("%d",&xaltsc[i]);
//leggi xcod univoco
trov = 1;
while (trov == 1)
{
printf("Inserire il codice dell'alunno'");
scanf("%d",&app3);
if (i == 0)
{
xcod[i] = app;
trov = 0;
}
else
{
//ricerca codice
cont = 0;
trov = 0;
while (cont != i && trov == 0)
{
if (app == xcod[cont])
{
trov = 1;
}
else
{
cont = cont + 1;
}
}
//fine ricerca codice
if (trov == 0)
{
xcod[i] = app;
}
else
{
printf("Codice già presente");
}
}
}
//fine leggi xcod univoco
printf("Inserire nome e cognome dell'alunno\n'");
gets(xnom[i]);
fflush("stdin");
//classe giusta
trov = 0;
while (trov == 0)
{
printf("Inserire la classe dell'alunno\n");
gets(app);
fflush("stdin");
//ricerca classe
cont = 0;
while (cont != xk && trov == 0)
{
if (app == xclasse[cont])
{
trov = 1;
}
else
{
cont = cont+ 1;
}
//fine ricerca classe
}
if (trov == 1)
{
xclasse[i] = app;
}
else
{
printf("Classe inesistente");
}
}
//fine classe giusta
//media giusta
printf("Inserire la media dell'alunno\n'");
scanf("%d",&xmedia[i]);
while (xmedia[i] > 10 || xmedia[i] < 0)
{
printf("Inserire la media dell'alunno\n'");
scanf("%d",&xmedia[i]);
}
//fine media giusta
//inizio leggi ore 1
printf("Inserire le ore che l'alunno ha fatto di alternanza\n'");
scanf("%d",&xore1[i]);
//contaeronea
trov = 0;
//ricerca alt sc
x = 0;
cont = 0;
while (cont != 10 && trov == 0)
{
if (xaltsc[i] == xalternanz[x])
{
trov = 1;
}
else
{
x = x +1;
cont = cont + 1;
}
}
//fine ricerca altsc
if (trov == 0)
{
*xcer = *xcer +1;
}
//fine contaeronea
if (trov == 1)
{
//contaesaurita
if (xore1[i] == xore2[x])
{
*xcontesa = *xcontesa + 1;
}
else
{
*xcer = *xcer + 1;
}
}
//fine contaesaurita
//fine inserimento
else
{
if (xsc2 == 5)
{
//cancellazione
printf("Inserire la classe da cancellare");
gets(app);
fflush("stdin");
//ricerca
trov = 0;
j = 0;
while (j != xk && trov != 1)
{
if (app == xclasse2[j])
{
trov = 1;
}
else
{
j = j + 1;
}
}
//fine ricerca
if (trov == 1)
{
//elimina
while (j != xk - 1)
{
xclasse2[j] = xclasse2[j+1];
xiscriz[j] = xiscriz[j+1];
j = j + 1;
}
//elimina 1
xk = xk - 1;
cont = 0;
i = 0;
while (i != xn)
{
if (app == xclasse[i])
{
//shiftalto
a = i
while (a != xn - 1)
{
xaltsc[a] = xaltsc[a + 1];
xcod[a] = xcod[a + 1];
xnom[a] = xnom[a + 1];
xclasse[a] = xclasse[a + 1];
xmedia[a] = xmedia[a + 1];
xore1[a] = xore1[a +1];
a = a + 1
}
//fine shiftalto
}
i = i + 1;
cont = cont + 1;
}
xn = xn - cont
}
else
{
printf("classe inesistente");
}
//fine cancellazione
}
else
{
//alt eronea
printf("Gli alunni che hanno indicato un alternanza eronea sono %d",xcer);
//fine alt eronea
}
}
}
}
}
}