Hola.
He estado haciendo este ejercicio que venía propuesto en un manual que estoy leyendo:
Código C:
Ver original/*Un programa que pida datos de 8 personas: nombre, dia de nacimiento, mes de
nacimiento, y año de nacimiento (que se deben almacenar en una tabla de structs).
Después deberá repetir lo siguiente: preguntar un número de mes y mostrar en
pantalla los datos de las personas que cumplan los años durante ese mes. Terminará
de repetirse cuando se teclee 0 como número de mes.*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
struct
{
char nombre[20];
int dia;
int mes;
int edad;
int ano;
}datos[8];
int i,comprobar;
for(i=0;i<=7;i++)
{
scanf("%s",datos
[i
].
nombre);
scanf("%d",&datos
[i
].
edad);
printf("Introduce mes de cumpleanos\n"); scanf("%d",&datos
[i
].
mes);
printf("Introduce ano de nacimiento\n"); scanf("%d",&datos
[i
].
ano); }
printf("Introduce el mes en el que quieres comprobar si alguna persona cumple anos\n");
for(i=0;i<=7;i++)
{
if(comprobar==datos[i].mes)
{
printf("%s cumple %d anos este mes\n",datos
[i
].
nombre,datos
[i
].
edad+1); }
if(comprobar
!=datos
[i
].
mes) printf("Nadie cumple anos este mes\n"); }
return 0;
}
El problema está en el bucle for del final.
Al ejecutar el programa, siempre sale "Nadie cumple años este mes" varias veces. He intentando poner "break", pero no sé si es correcto, o, en caso afirmativo, dónde colocarlo.
Muchas gracias.
Saludos.