Non riesco a proseguire nella compilazione di un semplice programmino che ho dovuto creare come compito a casa d'informatica.
Bisogna che il programma crei una tabella che non superi le 23 righe e le 5 colonne, poiché 23 sono i massimi alunni presenti nell'elenco e 5 sono i compiti in classe massimi per quadrimestre.
In seguito bisogna caricare i nomi degli alunni e dei compiti, stamparli a video e calcolare la media tra i voti dei compiti in classe di ogni alunno.
Non avevo mai utilizzato il linguaggio C ma è stato semplice impararlo, tanto che ci ho messo solo una serata per arrivare a scrivere buona parte di questo programma, ma ora sono ferma su caricare/stampare i dati della tabella poiché non riesco a capire come si fa
...
Poi la prof, lasciamo perdere... non ha saputo spiegarmelo nemmeno lei :rollo:... (prof d'informatica?!
... mah...). Quindi datemi voi una mano, plz
L'errore l'ho capito, ma non riesco a correggerlo:
Per caricare i dati nella tabella ho creato un array monodimensionale di tipo char per scrivere i nomi degli alunni, e un array multidimensionale per i voti su cui non riesco a caricare i dati; infatti è proprio qui che va in crash in DOS.
Questo è il programma:
codice:
#include <stdio.h> //libreria per le funzionealità basilari di input/output
#define rmax 23
#define cmax 5
int main()
{
int r,c;
int i,j;
int m[r][c];
char n[r][25];
for( ; ; ) //ciclo infinito
{
printf("Crea la tabella rispondendo alle richieste\n");
do
{
printf("Inserisci il numero degli alunni\n");
scanf("%d", &r);
if (r < 1 || r > rmax)
{
printf("Valore non consentito\n");
}
} while (r < 1 || r > rmax); //ripete l'operazione fino a che questa condizione non risulta vera
do
{
printf("Inserisci il numero dei compiti in classe\n");
scanf("%d", &c);
if (c < 1 || c > cmax)
{
printf("Valore non consentito\n");
}
} while (c < 1 || c > cmax); //ripete l'operazione fino a che questa condizione non risulta vera
for (i = 1; i < r + 1; i++)
{
printf("Nome alunno %d\n", i);
scanf("%s", n[i]);
for (j = 1; j < c + 1; j++)
{
printf("Voto compito %d\n", j);
scanf("%d", m[i][j]);
}
}
printf("Tabella creata con successo");
for (i = 1; i < r + 1; i++)
{
printf("\n", i, " ");
printf("%s", n[i]);
for (j = 1; j < c + 1; j++)
{
printf(" ", j, " ");
printf("%d", m[i][j]);
}
}
printf("\n");
}
}
Risulta compilato bene, ma si blocca in DOS...
Aspetto il vostro aiuto,