Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: julian.97 en 21 Junio 2011, 01:37 am



Título: PRECISO AYUDA CON UNA RESTA QUE HACE MAL EL PROGRAMA
Publicado por: julian.97 en 21 Junio 2011, 01:37 am
hola, mi idea era crear un programa que etsableceria un dialogo mas o menos asi; pc:hola como te llamas
yo; julian
pc:hola julian dime tu edad!
yo: 14
pc: Julian naciste en el año 1997
pc: julian has vivido mas de   5110 días.
 yo use este codigo
#include <stdio.h>
void main()
{
char nom[20];
int edad;
int año;
printf("\n\n\n\n\n\n");
printf("\t\t\t");
printf("\nHOLA! QUE TAL!? COMO TE LLAMAS?");
scanf("%s",nom);
printf("\nHola %s, dime tu edad!!",nom);
scanf("%d",&edad);
año=2011-%d;
printf("\n%s naciste en el año %f ",nom,año);
edad=edad*365;
printf("\n%s Has vivido mas de %d DIAS!!");
printf("\n\nPulsa cualquier tecla para terminar..");
getch();
}


el problema es que me dice : julian naciste en el año 2293576
                                          julian has vivido mas de 2293580

por que me da mal ?? una mano por favor, desde ya gracias, un saludo JULIAN!


Título: Re: PRECISO AYUDA CON UNA RESTA QUE HACE MAL EL PROGRAMA
Publicado por: Shell Root en 21 Junio 2011, 01:59 am
Yo no es que sepa mucho de C, pero cuidado con los caracteres especiales, ñ. Al final necesitabas de algunas variables, y ni las llamabas.
Código
  1. #include <stdio.h>
  2.  
  3. int main(){
  4.  
  5.   char nombre[20];
  6.   int edad = 0;
  7.   int ano  = 0;
  8.  
  9.   printf("Como te llamas?\n");
  10.   scanf("%s", nombre);
  11.  
  12.   printf("Hola %s, dime tu edad!\n", nombre);
  13.   scanf("%d", &edad);
  14.  
  15.   ano = 2011-edad;
  16.   printf("%s naciste en el año %d\n", nombre, ano);
  17.  
  18.   edad = edad*365;
  19.   printf("%s, has vivido mas de %d DIAS!\n", nombre, edad);
  20.  
  21.   return 0;
  22. }


Código:
shellroot@shellroot:~/Escritorio$ gcc PoC.c
shellroot@shellroot:~/Escritorio$ ./a.out
Como te llamas?
Alex
Hola Alex, dime tu edad!
20
Alex naciste en el año 1991
Alex, has vivido mas de 7300 DIAS!


Título: Re: PRECISO AYUDA CON UNA RESTA QUE HACE MAL EL PROGRAMA
Publicado por: julian.97 en 21 Junio 2011, 02:10 am
Yo no es que sepa mucho de C, pero cuidado con los caracteres especiales, ñ. Al final necesitabas de algunas variables, y ni las llamabas.
Código
  1. #include <stdio.h>
  2.  
  3. int main(){
  4.  
  5.   char nombre[20];
  6.   int edad = 0;
  7.   int ano  = 0;
  8.  
  9.   printf("Como te llamas?\n");
  10.   scanf("%s", nombre);
  11.  
  12.   printf("Hola %s, dime tu edad!\n", nombre);
  13.   scanf("%d", &edad);
  14.  
  15.   ano = 2011-edad;
  16.   printf("%s naciste en el año %d\n", nombre, ano);
  17.  
  18.   edad = edad*365;
  19.   printf("%s, has vivido mas de %d DIAS!\n", nombre, edad);
  20.  
  21.   return 0;
  22. }


Código:
shellroot@shellroot:~/Escritorio$ gcc PoC.c
shellroot@shellroot:~/Escritorio$ ./a.out
Como te llamas?
Alex
Hola Alex, dime tu edad!
20
Alex naciste en el año 1991
Alex, has vivido mas de 7300 DIAS!

la variable que me falto poner era la de ano?
porque cuando puse int ano me aparecia como ya estaba escrito ano o me daba error, pero ahora si me anda lo que tube que agregarle al final a tu codigo fue;   printf("Pulsa una tecla para salir..");
   getch();

por que si no se me cerraba ni bien ponía 14, GRACIAS!!!!
un saludo


Título: Re: PRECISO AYUDA CON UNA RESTA QUE HACE MAL EL PROGRAMA
Publicado por: nicolas_cof en 21 Junio 2011, 02:25 am
Una posible mejora seria ver el tema de los años bisiestos

http://es.wikipedia.org/wiki/A%C3%B1o_bisiesto (http://es.wikipedia.org/wiki/A%C3%B1o_bisiesto)

Salu10.


Título: Re: PRECISO AYUDA CON UNA RESTA QUE HACE MAL EL PROGRAMA
Publicado por: julian.97 en 22 Junio 2011, 13:06 pm
Una posible mejora seria ver el tema de los años bisiestos

http://es.wikipedia.org/wiki/A%C3%B1o_bisiesto (http://es.wikipedia.org/wiki/A%C3%B1o_bisiesto)

Salu10.

OK GRACIAS!!! lo voy a revisar! buena idea!!