#include <stdio.h> int main () { int nombre1, dia1, mes1, ano1, dias1, nombre2, dia2, mes2, ano2, dias2; printf ("Escriba el nombre de la primera persona:"); scanf ("%i\n", &nombre1); getchar(); printf ("Escriba el dia en que cumple la primera persona:"); scanf ("%i\n", &dia1); getchar(); printf ("Escriba el mes en que cumple la primera persona:"); scanf ("%i\n", &mes1); getchar(); printf ("Escriba el ano en que cumple la primera persona:"); scanf ("%i\n", &ano1); getchar(); printf ("Escriba el nombre de la segunda persona:"); scanf ("%i\n", &nombre2); getchar(); printf ("Escriba el dia en que cumple la segunda persona:"); scanf ("%i\n", &dia2); getchar(); printf ("Escriba el mes en que cumple la segunda persona:"); scanf ("%i\n", &mes2); getchar(); printf ("Escriba el ano en que cumple la segunda persona:"); scanf ("%i\n", &ano2); getchar(); dias1 = dia1+mes1*30+(2010-ano1)*365; dias2 = dia2+mes2*30+(2010-ano2)*365; if (dias1>dias2) { printf ("%i es la persona de mayor edad", nombre1); } else if (dias1<dias2) { printf ("%i es la persona de mayor edad", nombre2); } else if (dias1==dias2) { printf ("Las 2 personas tienen la misma edad"); } getchar(); return 0; }
Cuando pongo un nombre de más de 1 letra sale todo pegado, y se acaba antes de que le diga que termine. Además me admite un número, luego le doy enter y tengo que escribir otro número para que continúe.
dias1=(ano*365)+(mes*30)+dias
Luego solo falta comprobar el estado de las variables y ver cuala es mayor. Ten en cuenta que si te pasas de los valores máximos lo cagas todo...
Quita todos esos
getchar();
que hay despues de los scanf, puesto que el scanf espera a que pulses Intro...Puedes usar esto para comprobar los dias:
Dentro de los scanf quita el \n puesto que el solo hace el salto de línea.
Según el tipo de variable dentro de los scanf deberás poner %i, %d, o %s, para los chars usa %s.
Aparte un nombre no es un numero, si no una cadena de texto, por lo que cambia el int de nombre1 y nombre2 por char.
Aqui te dejo todo tu código correjido:
No uses getchar para parar el programa al final del todo, puesto que este no funciona muy bien despues de que escanee con el scanf porque a la mayoria de gente no le da tiempo a levantar el dedo. Usa mejor getche();