Questa è la nuova versione del programma, comunque la devo finire:
codice:
#include <stdio.h>

#define MAXDIM 20


main()
{
 char c, nomi[MAXDIM][50],cognomi[MAXDIM][50];
 int n, voti[MAXDIM][8];
 printf("\n\t\t* REGISTRO DEI VOTI DEGLI STUDENTI *\n\n");
 do {
     printf("\t\t1. Crea database studenti\n\t\t2. Registra voti studenti\n\t\t3. Visualizza risultati\n\t\t4. Esci\n");
     printf("\t\t\t\t\t\t\tScelta:");
     while((c = getc(stdin)) != EOF && c != '\n' && c != '1' && c != '2' && c != '3' && c !='4');
     printf("\n");
     if (c=='1') {
         int i;
         printf("// Creazione database studenti\n\n");
         do {
             float num;
             printf("numero di studenti(massimo 20): ");
             scanf("%f",&num);
             n = (int)num;
         } while(n<2 || n>MAXDIM);
         for(i=0;i<n;i++) {
             printf("\nSTUDENTE No.%d\n",i+1);
             printf("Nome: ");
             scanf("%s",nomi[i]);
             printf("Cognome: ");
             scanf("%s",cognomi[i]);
         }
         printf("\n\n");
         while(!getchar());
     }
     if (c=='2') {
         int i,j;
         printf("// Registrazione voti studenti\n\n");
         printf("[inserire solo numeri interi compresi tra 0 e 10]\n\n");
         for(i=0;i<n;i++) {
             for(j=0;nomi[i][j]!='\0' || cognomi[i][j]!='\0';j++) {
                 if (nomi[i][j]<123 && nomi[i][j]>96)
                     nomi[i][j] -= 32;
                 if (cognomi[i][j]<123 && cognomi[i][j]>96)
                     cognomi[i][j] -= 32;
             }
             printf("%s %s\n",nomi[i],cognomi[i]);
             for(j=0;j<8;j++) {
                 do {
                     float voto;
                     printf("prova #%d voto:",j+1);
                     scanf("%f",&voto);
                     voti[i][j] = (int)voto;
                 } while(voti[i][j]<0 || voti[i][j]>10);
             }
             printf("\n\n");
         }
         while(!getchar());
     }
     if (c=='3') {
         int i;
         printf("// Visualizzazione dei risultati\n\n");
         printf("\t\t    ");
         for(i=0;i<8;i++)
             printf("    #%d",i+1);
         printf("     MEDIA\n");
         for(i=0;i<n;i++) 
             printf("%c.%-18s\n",nomi[i][0],cognomi[i]);
         printf("\n\n");
         while(!getchar());
     }    
 } while (c!='4');
}
E questo è un semplice output:
codice:
		* REGISTRO DEI VOTI DEGLI STUDENTI *

		1. Crea database studenti
		2. Registra voti studenti
		3. Visualizza risultati
		4. Esci
							Scelta:1

// Creazione database studenti

numero di studenti(massimo 20): 5

STUDENTE No.1
Nome: Marco
Cognome: Terzi

STUDENTE No.2
Nome: Franco
Cognome: Battaglia

STUDENTE No.3
Nome: Gieseppe
Cognome: Brambilla

STUDENTE No.4
Nome: Sonia
Cognome: Cianfanelli

STUDENTE No.5
Nome: Ugo
Cognome: Incostante


		1. Crea database studenti
		2. Registra voti studenti
		3. Visualizza risultati
		4. Esci
							Scelta:3

// Visualizzazione dei risultati

		        #1    #2    #3    #4    #5    #6    #7    #8     MEDIA
M.Terzi             
F.Battaglia         
G.Brambilla         
S.Cianfanelli       
U.Incostante        


		1. Crea database studenti
		2. Registra voti studenti
		3. Visualizza risultati
		4. Esci
							Scelta:4