| Ver tema anterior :: Ver siguiente tema |
| Autor | Mensaje |
|---|
soso_2
Registrado: 20 Sep 2007 Mensajes: 10 Ubicación: bbb
| Publicado: 06/10/2007 7:40 am | | | Título: ayuda urgente en programa de dev c++ |
| lo que pasa es que a la hora de introducir los datos se acaba el programa y es lo unico que hace quisiera saber cual es mi error /*signo f estacion y año biciesto*/ #include <stdio.h> #include <conio.h>
int main()
{ float a,b; int c; char oper; printf("saber ,signo,estacio y año biciesto\n"); printf("que quieres saber\n 1)signo zodiacal\n2)estacion del año en que naciste\n3)si naciste en año bisiesto\n"); printf("que desea"); scanf("%c",&oper); printf("introdusca en numeros el dia que nacio"); scanf("%f",&a); printf("introdusca en numeros el mes que nacio"); scanf("%f",&b); printf("el año en que naciste"); scanf("%d",&c); switch(oper) { case'1':if(a>=1&&a<=30&&b>=3&&b<=4&&c>=1900) printf("tu horoscopo es aries"); else if(a>=1&&a<=30&&b==5&&c>=1900) printf("tu horoscopo es tauro"); else if(a>=1&&a<=30&&b>=5&&b<=6&&c>=1900) printf("tu horoscopo es geminis"); else if(a>=1&&a<=30&&b>=6&&b<=7&&c>=1900) printf("tu horoscopo es cancer"); else if(a>=1&&a<=30&&b>=8&&c>=1900) printf("tu horoscopo es leo"); else if(a>=1&&a<=30&&b>=8&&b<=9&&c>=1900) printf("tu horoscopo es virgo"); else if(a>=1&&a<=30&&b>=9&&b<=10&&c>=1900) printf("tu horoscopo es libra"); else if(a>=1&&a<=30&&b>=10&&b<=11&&c>=1900) printf("tu horoscopo es escorpion"); else if(a>=1&&a<=30&&b>=11&&b<=12&&c>=1900) printf("tu horoscopo es sagitario"); else if(a>=1&&a<=30&&b==1&&c>=1900) printf("tu horoscopo es capricornio "); else if(a>=1&&a<=30&&b>=1&&b<=2&&c>=1900) printf("tu horoscopo es acuario"); else if(a>=1&&a<=30&&b==3&&c>=1900) printf("tu horoscopo es picis"); break; case'2':if(a>=1&&a<=30&&b>=7&&b<=12&&c>=1900) printf("la estacion en que naciste es invierno"); else if(a>=1&&a<=30&&b>=3&&b<=6&&c>=1900) printf("la estacion en que naciste es primavera"); else if(a>=1&&a<=30&&b>=1&&b<=5&&c>=1900) printf("la estacion en que naciste es verano"); else if(a>=1&&a<=30&&b>=6&&b<=12&&c>=1900) printf("la estacion en que naciste es otoño"); break; case'3':if(c%4==0&&c%400==0) printf("naciste en año bisiesto"); else if(c%100==1) printf("no naciste en año bisiesto"); break; } getch; } |
|
| Volver arriba | |
 |
rir3760

Registrado: 01 Oct 2004 Mensajes: 3588 Ubicación: Mexico
| Publicado: 06/10/2007 8:26 am | | | Título: |
| Cuando tengas un problema con uno de tus programas trata de ser lo mas claro y especifico posible empezando por el lenguaje de programacion que estas utilizando y cual es exactamente el problema.
Supongo que te refieres al calculo del año bisiesto, este esta mal y deberia ser:
| Código: | switch (oper){
/* ... */
case '3': if (c % 400 == 0 || c % 4 == 0 && c % 100 != 0) printf("naciste en año bisiesto"); else printf("no naciste en año bisiesto"); break; } |
Tambien te falta indicar el valor de retorno de la funcion main y si vas a trabajar solo con enteros seria mejor declarar las tres variables "a", "b" y "c" como tipo "int" (y tambien darles nombres mas descriptivos como dia, mes, etc.).
Un saludo _________________ The capacity to learn is a gift; The ability to learn is a skill; The willingness to learn is a choice. -- Rebec of Ginaz |
|
| Volver arriba | |
 |
soso_2
Registrado: 20 Sep 2007 Mensajes: 10 Ubicación: bbb
| Publicado: 06/10/2007 8:43 am | | | Título: yo |
| | aclarando es c++ y el problema que al ejecutarlo no hace mas que pedirte los datos y se quita el programa |
|
| Volver arriba | |
 |
|
rir3760

Registrado: 01 Oct 2004 Mensajes: 3588 Ubicación: Mexico
| Publicado: 06/10/2007 9:28 pm | | | Título: |
| Para que el programa funcione correctamente (al menos la parte sobre el año bisiesto) solo tienes que hacer el cambio que te indique.
Un saludo _________________ The capacity to learn is a gift; The ability to learn is a skill; The willingness to learn is a choice. -- Rebec of Ginaz |
|
| Volver arriba | |
 |
soso_2
Registrado: 20 Sep 2007 Mensajes: 10 Ubicación: bbb
| Publicado: 07/10/2007 6:25 pm | | | Título: problema |
| | el problema es que al ejecutarlo lo hace muy rapido e inmediatamente se acaba |
|
| Volver arriba | |
 |
Wellingtom

Registrado: 19 Sep 2007 Mensajes: 17 Ubicación: venezuela
| Publicado: 07/10/2007 8:42 pm | | | Título: hello! |
| hello!!
pues, compilé tu codigo, y no hay ningun error, entiendo tu problema, lo que tienes que hacer es agregar esta sencilla linea, a tu codigo...
al final (antes del ultimo " } ") :
system("pause");
y ya...
NOO olvides que esa linea, debe estar DENTRO de la funcion main, en la ultima linea, antes del " } " que termina (la funcion main...)
system("pause"); }
es todo... esa funcion, lo que hace es mostrar el resultado, (y no cerrar la ventana hasta que el usuario puye alguna tecla)
saludos!!
__________  _________________ o sea hello! |
|
| Volver arriba | |
 |
|
rir3760

Registrado: 01 Oct 2004 Mensajes: 3588 Ubicación: Mexico
| Publicado: 08/10/2007 7:46 am | | | Título: |
| Para ser exactos la llamada a la funcion system de colocarse como la penultima linea de la funcion main antes de la terminacion de esta indicada por la sentencia "return N;".
En el caso de C estandar un ejemplo sencillo es:
| Código: | #include <stdio.h> #include <stdlib.h>
int main(void) { puts("hola, mundo"); system("pause"); return EXIT_SUCCESS; }
|
Un saludo _________________ The capacity to learn is a gift; The ability to learn is a skill; The willingness to learn is a choice. -- Rebec of Ginaz |
|
| Volver arriba | |
 |
|
|