Ciao, sto completando lo sviluppo di un programma, che è un registro dei voti degli studenti.
Sono all'ultima parte, cioè la visualizzazione dei risultati. ho provato a scrivere i nomi degli studenti in una tabella, ma ricevo degli errori in compilazione:
codice:
voti.c: In function ‘main’:
voti.c:63: warning: format ‘%s’ expects type ‘char *’, but argument 2 has type ‘int’
questo è il codice del programma (provvisorio):
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");
         for(i=0;i<n;i++) 
             printf("%s. %s\n",nomi[i][0],cognomi[i]);
         while(!getchar());
     }    
 } while (c!='4');
}
mi sembra strano l'errore che ricevo in compilazione trattandosi di stringhe