era pra o código funcionar assim ? ou é um problema ?
Se for um problema faz assim que as medias de cada aluno vai funcionar normalmente MAS a media geral depois vai dar problema pois você tem que usar outra variável ou usar uma struct para armazena a geral.
( Eu indentei código do meu jeito se não gostar só arrumar. )
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main (){
char nome, sexo;
float nota, notah, notam=0, media1, mediah=0, mediam=0, rh=0, rm=0, soma=0, somam=0, somah=0;
while(nome!='f'){
mediam = 0;
somam = 0;
printf("soman = %f\n",somam);
printf("Digite o nome do aluno: ");
scanf("%c", &nome);
fflush(stdin);
if(nome=='f'){
system("cls");
printf("voce saiu.\nA media das notas das mulheres foi: %.2f\n", mediam);
system("pause");
}
else{
printf("Se esse aluno e homem digite h, se e mulher digite m: ");
scanf("%c", &sexo);
fflush(stdin);
if(sexo=='m'){
rm++;
for(int i=0; i<=2; i++){
printf("Digite a nota desse aluno: ");
scanf("%f", ¬am);
somam= somam+notam;
fflush(stdin);
}
media1 = (somam/3);
printf("A media desse aluno e: %.2f.\n", media1);
}
}
}
mediam = (somam/rm);
printf("\n\n");
system ("pause");
}