Mira, un arreglo, array o vector, es una estructura de datos líneal, que sirve para guardar datos del mismo tipo. Te he dicho que para hacer el conteo de mayores de edad y menos de edad en un salón no necesitas de una matriz, sino un arreglo, porque los alumnos en un salón podrían ser almacenador perfectamente en un arreglo.
Si no sabes cuantos alumnos va a haber en tal salón, se utiliza un arreglo dinámico, es decir, podemos definir en tiempo de ejecución el tamaño del arreglo. Te he dejado más atrás un ejemplo de esto.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
unsigned int i, n, mayores = 0, menores = 0;
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 */
}
/* 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 */
return 0;
}