Para leer cadenas es mejor si usas
gets, algo así:
Cambia:
scanf(" [^\n]",na[i]);
Por esto:
fflush(stdin);
gets(na[i]);
Los puntos 1 al 4 quedarían del siguiente modo:
Punto 1
for(i=0; i<N; i++)
if(ts[i] == 'M' || ts[i] == 'm') /* Mujeres */
printf("%c\n", na[i][0]);
Punto 2
int suma_edades_hombres = 0;
int num_hombres = 0;
for(i=0; i<N; i++)
if(ts[i] == 'H' || ts[i] == 'h') /* Hombres */
{
suma_edades_hombres += ed[i];
num_hombres ++;
}
printf("Promedio edad: %d", suma_edades/num_hombres);
Punto 3
float suma_salario_mujeres = 0;
int num_salario_mujeres = 0;
for(i=0; i<N; i++)
if(ts[i] == 'M' || ts[i] == 'm') /* Mujeres */
{
if(na[i][0] == 'a') /* Nombre empieza con a */
{
for(j=0; j<M; j++)
{
suma_salario_mujeres += sa[i][j];
num_salario_mujeres++;
}
}
}
printf("Promedio salario: %f", suma_salario_mujeres/num_salario_mujeres);
Punto 4
float suma_salario = 0;
int num_salario = 0;
for(i=0; i<N; i++)
for(j=0; j<M; j++)
{
suma_salario += sa[i][j];
num_salario++;
}
printf("Promedio salario: %f", suma_salario/num_salario);
Un saludo,