¿Que opinan de el siguiente codigo que calcula la edad de una persona?

Iniciado por maicol_962016, 20 Febrero 2016, 16:36 PM

0 Miembros y 1 Visitante están viendo este tema.

maicol_962016

//como se podría mejorarlo y cuales serian los posibles errores de esta código

Código (cpp) [Seleccionar]
#include<stdio.h>
#include<string.h>
//programa q  calcula la edad que tiene una persona en años
int main(){
    int dian,mesn,anion;//ingreso de fechas de naciomiento
int dia,mes,año;//ingreso de fechas actuales
int edad=0,emes=0,edia=0;//controlador de edad
    printf("ingrese dia de naciomiento:");
    scanf("%d",&dian);
printf("ingrese mes de naciomiento:");
    scanf("%d",&mesn);
printf("ingrese año de naciomiento:");
    scanf("%d",&anion);
printf("ingrese dia actual: ");
    scanf("%d",&dia);
printf("ingrese mes actual: ");
    scanf("%d",&mes);
    printf("ingrese año actual: ");
    scanf("%d",&año);
if(año>=anion){
if(año>anion&&mes>=mesn){//si año actual es mayor a año de nacimiento y mes actual es mayor o igal a mes de nacimiento
    for(int i=anion;i<año;i++){//
    edad+=1;
    }
    }
    if (dia<dian){
    edad=edad-1;
    }
}
    else if(año>anion&&mes<mesn){
   for(int i=anion+1;i<año;i++){
       edad+=1;  
    }
    }
   if (edad ==0){
        if(mes>mesn&&dia>=dian){
        for(int i=mesn;i<mes;i++){
        emes+=1;
        }
   
        printf("la edad en meses es %d",emes);
        }
else if(mes<=mesn){
for(int i=dian;i<dia;i++){
        edia+=1;
        }
        printf("la edad en dias es %d",edia);
}
   }
    else if(edad>0)
printf("la edad es: %d",edad);
   

else{
printf("el año actual es menor al año de nacimiento" );
}
  return 0;
}