Mira, en un principio lo pediste que fuera con una matriz, cosa que no tiene sentido, ya que si hablamos de un salón de clases, lo mejor sería un arreglo, es decir, una estructura lineal, no una matriz.
Si no sabes cuántos alumnos serán, necesitas asignación dinámica de memoria, un arreglo dinámico.
Código (c) [Seleccionar]
#include <stdio.h>
#define A 5
int main(void)
{
unsigned int i;
signed int arreglo[A] = {19, 24, 2, 3, 45};
unsigned int menores = 0, mayores = 0;
for(i = 0; i < A; i++)
if(arreglo[i] >= 18)
{
mayores++;
} else {
menores++;
}
printf("Mayores : %u\nMenores : %u\n", mayores, menores);
getchar();
}
Si no sabes cuántos alumnos serán, necesitas asignación dinámica de memoria, un arreglo dinámico.
Código (c) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
unsigned int i, n, mayores = 0, menores = 0;
printf("n : ");
scanf("%u", &n);
signed int *alumnos = malloc(n * sizeof(int));
/* Guardar los datos : */
for(i = 0; i < n; i++)
{
printf("Alumno %d : ", i + 1);
scanf("%d", alumnos + i);
/* Limpiamos el buffer */
while(getchar() != '\n');
}
/* Hacemos el conteo */
for(i = 0; i < n; i++)
*(alumnos + i) >= 18 ? mayores++ : menores++;
printf("Mayores : %d\nMenores : %d\n", mayores, menores);
/* Liberar la memoria */
free(alumnos);
return 0;
}