Hola,
tengo un problema con un ejercicio de programación.
Me piden que introduzca un nombre de atleta, apellidos, fecha nacimiento.. entre otros. Y luego tengo que poder modificar la información, pidiendo un nombre y apellido.
Me falla la parte de comparar una cadena del nombre introducido con el nombre del atleta. Lo he hecho con el STRCMP.
Os pongo la parte de modificar, con negrita la parte que me da problemas...
struct atleta {
char nom[atl][max];
char cog1[atl][max];
char cog2[atl][max];
char sexe[atl];
int codi_cmp[atl][comp]; // el codi de competició
} a;
typedef struct {
int dia[atl];
int mes[atl];
int any[atl];
} data;
char nom[max], cognom[max];
printf ("\nModificar datos de un atleta dado su nombre\n");
printf ("************************************\n\n");
printf ("Nombre del atleta que quieres modificar: ");
scanf ("%s", nom);
i=0;
while (i< atl){
if (strcmp (nom, a.nom[i])==0){
error= 1;
}else{
error=0;
}
i++;
}
if (error == 0){
printf ("Este nombre no exististe");
}else{
printf ("Apellido del atleta que quieres modificar: ");
scanf ("%s", cognom);
if (strcmp (cognom, a.cog1[i])==0){
error= 1;
}else{
error= 0;
}
if (error == 0){
printf ("Este apellido no existe");
}else{
printf ("Fecha de nacimiento: %d / %d / %d", d.dia[i], d.mes[i], d.any[i]);
printf ("\nModificar: ");
scanf ("%d %d %d", &dia, &mes, &any);
error=1;
while (error==1 && dia != '\n'){
if (dia >0 && dia<=31 && mes>0 && mes<=12 && any >1900 && any <2100) {
d.dia[i]= dia;
d.mes[i]= mes;
d.any[i]= any;
error=0;
}else{
printf ("Incorrecto. Vuelve a introducir la fecha: ");
scanf ("%d %d %d", &dia, &mes, &any);
error=1;
}
}
printf ("Fecha de naciemiento: %d / %d / %d\n\n", d.dia[i], d.mes[i], d.any[i]);
if (a.sexe[i] == 'h'){
printf ("Sexo: Hombre\n");
}else{
printf ("Sexo: Mujer\n");
}
printf ("Modificar sexo (h/d): "); // h: hombre, d: mujer
scanf ("%c", &hd);
error=1;
while (error==1 && hd !='\n'){
if (hd == 'h' || hd == 'd'){
a.sexe[i]=hd;
error=0;
}else{
printf ("Incorrecto, vuelve a introducir el sexo: ");
scanf ("%c", &hd);
error=1;
}
}
if (a.sexe[i] == 'h'){
printf ("Sexo: Hombe\n");
}else{
printf ("Sexo: Mujer\n");
}
}
// aun faltan cosas!!
}
break;