PRECISO AYUDA CON UNA RESTA QUE HACE MAL EL PROGRAMA

Iniciado por julian.97, 21 Junio 2011, 01:37 AM

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

julian.97

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!

Shell Root

Yo no es que sepa mucho de C, pero cuidado con los caracteres especiales, ñ. Al final necesitabas de algunas variables, y ni las llamabas.
#include <stdio.h>

int main(){

  char nombre[20];
  int edad = 0;
  int ano  = 0;

  printf("Como te llamas?\n");
  scanf("%s", nombre);

  printf("Hola %s, dime tu edad!\n", nombre);
  scanf("%d", &edad);

  ano = 2011-edad;
  printf("%s naciste en el año %d\n", nombre, ano);

  edad = edad*365;
  printf("%s, has vivido mas de %d DIAS!\n", nombre, edad);

  return 0;
}



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!
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

julian.97

Cita de: 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.
#include <stdio.h>

int main(){

  char nombre[20];
  int edad = 0;
  int ano  = 0;

  printf("Como te llamas?\n");
  scanf("%s", nombre);

  printf("Hola %s, dime tu edad!\n", nombre);
  scanf("%d", &edad);

  ano = 2011-edad;
  printf("%s naciste en el año %d\n", nombre, ano);

  edad = edad*365;
  printf("%s, has vivido mas de %d DIAS!\n", nombre, edad);

  return 0;
}



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


julian.97

Cita de: 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

Salu10.

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