| Ver tema anterior :: Ver siguiente tema |
| Autor | Mensaje |
|---|
estoyperdida
Registrado: 25 Nov 2007 Mensajes: 16
| Publicado: 05/12/2007 11:27 pm | | | Título: mas dudas... |
| Holass de nuevo. Bueno creo que ya tengo mas o menos el programa principal, pero cuando lo compilo sale mal, asik eso esk esta mal. No se que pasa que cuando por ejemplo doy a cambiar mes, cuando meto algun dato imposible no me dice que hay error
| Código: | case 1: { printf ("Nuevo mes: ");scanf("%d",&mes); if (mes>0 | mes<=12) { printf("la fecha ahora es dia=%d mes=%d anno=%d",dia,mes,anno); muestra_calendario(anno,mes); getchar(); } else printf("Error: mes entre 1 y 12.\n"); } break;
|
Vamos que si pongo mes 13, no me dice nada. Y luego otra cosita en la parte donde pone 'La fecha introducida es...' me sale dia=-1080808636 mes=-1080808640 anno=-1080808632 , no se a que se debe, ayudarmee por favor^^ |
|
| Volver arriba | |
 |
Cyberick
Registrado: 04 Nov 2007 Mensajes: 6 Ubicación: Mayaguez, Puerto Rico
| Publicado: 06/12/2007 12:03 am | | | Título: Re: mas dudas... |
| Cuando pones un número fuera del rango especificado ( 0 - 12 ), no te devuelve "ERROR MSG" porque la condición está mal. Para que funcione tienes que cambiar tu if statement por esto:
| Código: | if ( mes > 0 && mes <= 12 )
|
Fíjate que usé un "&&" (AND) y no un "|" (OR). De esta manera, cuando introduzcas tu número, el mismo tendrá que ser mayor a 0 y menor o igual a 12.
Con respecto a tu otra duda, creo que deberías poner un poco más de código a ver si encontramos la falla.
Suerte, Cyberick _________________ "Give a man a fish and you feed him for a day. Teach a man to fish and you feed him for a lifetime." --Chinese Proverb |
|
| Volver arriba | |
 |
GameZelda
Registrado: 15 Nov 2007 Mensajes: 3
| Publicado: 06/12/2007 1:16 am | | | Título: Re: mas dudas... |
| | Cyberick escribió: | Fíjate que usé un "&&" (AND) y no un "|" (OR). De esta manera, cuando introduzcas tu número, el mismo tendrá que ser mayor a 0 y menor o igual a 12. |
Poner una sola | es la operación "bitwise" OR (Y una sola & es la operación "bitwise" AND). Para condicionales debe usarse siempre || (o) y && (y) |
|
| Volver arriba | |
 |
|
estoyperdida
Registrado: 25 Nov 2007 Mensajes: 16
| Publicado: 06/12/2007 1:33 am | | | Título: |
| Lo he puesto y me sigue saliendo lo mismo que antes  Y lo de los numeros raros esos que me salen, no sabeis de que puede ser? |
|
| Volver arriba | |
 |
Filzix
Registrado: 30 Oct 2007 Mensajes: 15
| Publicado: 06/12/2007 2:11 am | | | Título: |
| supongo que si cierras llave primero tendras que abrirla en el else . y borrar la del despues del case 1 (no se si ahora rula)
| Código: | case 1: printf ("Nuevo mes: ");scanf("%d",&mes); if (mes>0 && mes<=12) { printf("la fecha ahora es dia=%d mes=%d anno=%d",dia,mes,anno); muestra_calendario(anno,mes); getchar(); } else { printf("Error: mes entre 1 y 12.\n"); } break; |
|
|
| Volver arriba | |
 |
estoyperdida
Registrado: 25 Nov 2007 Mensajes: 16
| Publicado: 06/12/2007 3:45 am | | | Título: |
| Ya he conseguido que me salga^^ Muchisimas gracias^^
Pero sigue sin salirme bien los numeros, me sigue apareciendo dia=-1080808636 mes=-1080808640 anno=-1080808632 |
|
| Volver arriba | |
 |
|
Cyberick
Registrado: 04 Nov 2007 Mensajes: 6 Ubicación: Mayaguez, Puerto Rico
| Publicado: 06/12/2007 4:11 am | | | Título: Re: mas dudas... |
| | GameZelda escribió: | | Cyberick escribió: | Fíjate que usé un "&&" (AND) y no un "|" (OR). De esta manera, cuando introduzcas tu número, el mismo tendrá que ser mayor a 0 y menor o igual a 12. |
Poner una sola | es la operación "bitwise" OR (Y una sola & es la operación "bitwise" AND). Para condicionales debe usarse siempre || (o) y && (y) |
Cierto, gracias por la corrección!
Saludos, Cyberick _________________ "Give a man a fish and you feed him for a day. Teach a man to fish and you feed him for a lifetime." --Chinese Proverb |
|
| Volver arriba | |
 |
|
|