Ecco il tuo codice indentato correttamente e con le correzioni in grassetto (ho anche eliminato alcune parentesi superflue)

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[rmax][cmax]; //  L'array deve essere dimensionato con le costanti 
   char n[rmax][25];  //  L'array deve essere dimensionato con le costanti 

   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 = 0; i<r; i++)  // L'array e' in base 0
      {
         printf("Nome alunno %d\n", i+1); //  L'array e' in base 0
         scanf("%s", n[i]);
         for (j=0; j<c; j++) //  L'array e' in base 0
         {
            printf("Voto compito %d\n", j+1); //  L'array e' in base 0
            scanf("%d", &m[i][j]); // Devi indicare l'indirizzo dell'elemento dell'array
         } 
      }

      printf("Tabella creata con successo");
		
      for (i=0; i<r; i++) //  L'array e' in base 0
      {
         printf("\n", i+1, " "); //  L'array e' in base 0
         printf("%s", n[i]);
         for (j=0; j<c; j++) //  L'array e' in base 0
         {
            printf(" ", j+1, " "); //  L'array e' in base 0
            printf("%d", m[i][j]);   
         }
      }
		
      printf("\n");
   }
}