Título: Programa C++ Publicado por: mikemikemike en 5 Mayo 2010, 08:17 am Este ejercicio, lo coloque tambien en Programacion General, pero nadie me ha ayudado... Disculpas por postear lo mismo en 2 sitios...
La empresa “AA S.A.” le contrato para desarrollar un programa en “C” capaz de desplegar el signo zodiacal a partir de una fecha de nacimiento, por lo tanto el usuario deberá de digital el día y el mes de nacimiento, y el módulo le debe de desplegar por pantalla la información Este es el codigo que tengo, tomando en cuenta la idea que alguien coloco en el foro de programacion general... #include "conio.h" #include "stdio.h" void main() { int m; clrscr(); printf("DIGITE EN NUMEROS EL MES, SEGUIDO DEL DIA DE NACIMIENTO: "); scanf("%d",&m); if ((m>321) | (m<420)) printf("SU SIGNO ES ARIES "); else if ((m>421) | (m<520)) printf("SU SIGNO ES TAURO "); else if ((m>521) | (m<620)) printf("SU SIGNO ES GEMINIS "); else if ((m>621) | (m<720)) printf("SU SIGNO ES CANCER "); else if ((m>721) | (m<820)) printf("SU SIGNO ES LEO "); else if ((m>821) | (m<920)) printf("SU SIGNO ES VIRGO "); else if ((m>921) | (m<1020)) printf("SU SIGNO ES LIBRA "); else if ((m>1021) | (m<1120)) printf("SU SIGNO ES ESCORPION "); else if ((m>1121) | (m<1220)) printf("SU SIGNO ES SAGITARIO "); else if ((m>1221) | (m<120)) printf("SU SIGNO ES CAPRICORNIO "); else if ((m>121) | (m<220)) printf("SU SIGNO ES ACUARIO "); else if ((m>221) | (m<320)) printf("SU SIGNO ES PISCIS "); getch(); } No me da errores, pero el programa siempre me da el resultadp " SU SIGNO ES ARIES", lo cual señala que esta malo!! Gracias y si esa era la causa, utilice el comando erroneo, sin enbargo hice este otro, aplicando mi poco conocimiento, pero por menu, les envio para ver que les parece, si me corrio!! #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <math.h> void main() { int fin=0; int opcion; int d; while (fin ==0) { printf ("MENU DE SIGNO ZODIACAL\n\n"); printf ("\t Digite la opcion deseada.\n"); printf ("\t1 Digite si nace en enero.\n"); printf ("\t2 Digite si nace en febrero.\n"); printf ("\t3 Digite si nace en marzo.\n"); printf ("\t4 Digite si nace en abril.\n"); printf ("\t5 Digite si nace en mayo.\n"); printf ("\t6 Digite si nace en junio.\n"); printf ("\t7 Digite si nace en julio.\n"); printf ("\t8 Digite si nace en agosto.\n"); printf ("\t9 Digite si nace en setiembre.\n"); printf ("\t10 Digite si nace en octubre.\n"); printf ("\t11 Digite si nace en noviembre.\n"); printf ("\t12 Digite si nace en diciembre.\n"); printf ("\t13] SALIR\n"); printf ("\n\n opcion: "); scanf ("%d", &opcion); switch (opcion) { case 1: clrscr(); printf("\n"); printf ("Digite el dia de nacimiento \n"); scanf ("%d", &d); if (d<20) printf ("El signo zodiacal suyo es :\n%d Capricornio" ); else printf ("El signo zodiacal suyo es :\n%d Acuario" ); printf("\n"); break; case 2: clrscr(); printf("\n"); printf ("Digite el dia de nacimiento \n"); scanf ("%d", &d); if (d<20) printf ("El signo zodiacal suyo es : Acuario " ); else printf ("El signo zodiacal suyo es : Piscis " ); printf("\n"); break; case 3: clrscr(); printf("\n"); printf ("Digite el dia de nacimiento \n"); scanf ("%d", &d); if (d<20) printf ("El signo zodiacal suyo es : Piscis" ); else printf ("El signo zodiacal suyo es : Aries" ); printf("\n"); break; case 4: clrscr(); printf("\n"); printf ("Digite el dia de nacimiento \n"); scanf ("%d", &d); if (d<20) printf ("El signo zodiacal suyo es : Aries " ); else printf ("El signo zodiacal suyo es : Tauro " ); printf("\n"); break; case 5: clrscr(); printf("\n"); printf ("Digite el dia de nacimiento \n"); scanf ("%d", &d); if (d<20) printf ("El signo zodiacal suyo es : Tauroo" ); else printf ("El signo zodiacal suyo es : Geminis" ); printf("\n"); break; case 6: clrscr(); printf("\n"); printf ("Digite el dia de nacimiento \n"); scanf ("%d", &d); if (d<20) printf ("El signo zodiacal suyo es : Geminis " ); else printf ("El signo zodiacal suyo es : Cancer " ); printf("\n"); break; case 7: clrscr(); printf("\n"); printf ("Digite el dia de nacimiento \n"); scanf ("%d", &d); if (d<20) printf ("El signo zodiacal suyo es : Cancer" ); else printf ("El signo zodiacal suyo es : Leo" ); printf("\n"); break; case 8: clrscr(); printf("\n"); printf ("Digite el dia de nacimiento \n"); scanf ("%d", &d); if (d<20) printf ("El signo zodiacal suyo es : Leo " ); else printf ("El signo zodiacal suyo es : Virgo " ); printf("\n"); break; case 9: clrscr(); printf("\n"); printf ("Digite el dia de nacimiento \n"); scanf ("%d", &d); if (d<20) printf ("El signo zodiacal suyo es : Virgo" ); else printf ("El signo zodiacal suyo es : Libra" ); printf("\n"); break; case 10: clrscr(); printf("\n"); printf ("Digite el dia de nacimiento \n"); scanf ("%d", &d); if (d<20) printf ("El signo zodiacal suyo es : Librao " ); else printf ("El signo zodiacal suyo es : Escorpion " ); printf("\n"); break; case 11: clrscr(); printf("\n"); printf ("Digite el dia de nacimiento \n"); scanf ("%d", &d); if (d<20) printf ("El signo zodiacal suyo es : Escorpion" ); else printf ("El signo zodiacal suyo es : Sagitario" ); printf("\n"); break; case 12: clrscr(); printf("\n"); printf ("Digite el dia de nacimiento \n"); scanf ("%d", &d); if (d<20) printf ("El signo zodiacal suyo es : Sagitario " ); else printf ("El signo zodiacal suyo es : Capricornio " ); printf("\n"); break; default: fin= 13; break; } } system("pause"); getch(); } Título: Re: Programa C++ Publicado por: Akai en 5 Mayo 2010, 09:18 am las operaciones lógicas OR y AND, en C se escriben dos veces a menos que quieras realizarlas bit a bit. Estás haciendo comparaciones con errores tanto de escritura como de planteamiento.
Si quieres expresar si m está entre A y B se expresa como (entre otras formas que se puedan ocurrir) if((m>A) && (m<B)). Ese viene a ser el fallo. EDIT: leete las normas del foro, y no postees las cosas en 2 sitios, no hagas doble post, utiliza el boton "editar" si quieres añadir algo mas. |