Ok muchas grácias perdón por contestar apenas y como me dijsite amigo eran los valores de entrada, de echo si era eso ahora me compila y todo pero me gustaria saber si esta correcto o tengo que hacer alguna corrección para mejorarlo, de hecho esta es solo una parte no esta completo mi programa pero me gustaria saber si voy por buen camino
Código:
#include <stdio.h>
#define T 20
struct materia {
char nom[30];
float calif;
};
struct alumno {
char nombre[50];
int edad;
char sexo;
struct materia mat[5];
char marca;
};
struct alumno alumnos[T];
void insertar () {
int i=0,ban=0;
do {
if (alumnos[i].marca=='0') {
printf("Dame tu nombre ");
fpurge(stdin);
gets(alumnos[i].nombre);
printf("\nDame tu edad ");
scanf("%i",&alumnos[i].edad);
while (alumnos[i].edad<=0) {
printf("\n tu edad dada no es valida vuelva a ingresarla ");
scanf("%i",&alumnos[i].edad);
}
printf("\nseleccione su sexo m/f ");
fpurge(stdin);
scanf("%c",&alumnos[i].sexo);
while ((alumnos[i].sexo!='m') && (alumnos[i].sexo!='f')) {
printf("\nsexo no valido vuelva a insertarlo m/f ");
fpurge(stdin);
scanf("%c",&alumnos[i].sexo);
}
alumnos[i].marca='1';
ban=1;
}
if (i==T-1) {
printf("\nNo tengo casillas vacias elimine alguna");
ban=1;
}
i++;
}
while(ban!=1);
}
main () {
int w;
for (w=0;w<T;w++)
alumnos[w].marca='0';
insertar ();
printf("\n %s \n %i \n %c",alumnos[0].nombre,alumnos[0].edad,alumnos[0].sexo);
return 0;
}