Problema esecuzione codice

di il
2 risposte

Problema esecuzione codice

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

2 Risposte

  • Re: Problema esecuzione codice

    Esiste una sezione specifica del forum per il C.

    Inoltre formatta il codice con i tag appositi e per favore: indenta il codice
  • Re: Problema esecuzione codice

    Ed elenca chiaramente che errori ti vengono.
Devi accedere o registrarti per scrivere nel forum
2 risposte