Autor
|
Tema: Problema con este programa, me aparece un mensaje de error. (Leído 5,893 veces)
|
Anastacio
Desconectado
Mensajes: 111
|
Tengo un problema con un programa que calcula signos zodiacales. # include <stdio.h> # include <conio.h>
int main()
{ int a; int ACUARIO; int ACUARIO1; int Piscis; int Piscis1; int Aries; int Aries1; int Tauro; int Tauro1; int Geminis; int Geminis1; int Cancer; int Cancer1; int Leo; int Leo1; int Virgo; int Virgo1; int Libra; int Libra1; int Escorpio; int Escorpio1; int Sagitario; int Sagitario1; int Capricornio; int Capricornio1; int Capricornio2; int Capricornio3; a = 0; ACUARIO = 0121; ACUARIO1 = 0219; Piscis = 0220; Piscis1 = 0319; Aries = 0320; Aries1 = 0420; Tauro = 0421; Tauro1 = 0521; Geminis = 0522; Geminis1 = 0622; Cancer = 0623; Cancer1 = 0722; Leo = 0723; Leo1 = 0823; Virgo = 0824; Virgo1 = 0923; Libra = 0924; Libra1 = 1023; Escorpio = 1024; Escorpio1 = 1122; Sagitario = 1123; Sagitario1 = 1221; Capricornio = 1222; Capricornio1 = 1231; Capricornio2 = 0101; Capricornio3 = 0120; printf("Con este programa usted podra saber su signo zodiacal\n"); printf("Ahora, de su mes y dia de nacimiento, colocando primero el mes, y luego el dia, sin separarlos\n"); printf("Ejemplo: Si usted nacio el 10 de enero, usted colocara 0110.\n"); scanf("%d",&a); if(a >= ACUARIO and a <= ACUARIO1) { printf("Tu signo zodiacal es Acuario"); getch(); return 0; } if(a >= Piscis and a <= Piscis1) { printf("Tu signo zodiacal es Piscis"); getch(); return 0; } if(a >= Aries and a <= Aries1) { printf("Tu signo zodiacal es Aries"); getch(); return 0; } if(a >= Tauro and a <= Tauro1) { printf("Tu signo zodiacal es Tauro"); getch(); return 0; } if(a >= Geminis and a <= Geminis1) { printf("Tu signo zodiacal es Geminis"); getch(); return 0; } if(a >= Cancer and a <= Cancer1) { printf("Tu signo Zodiacal es Cancer"); getch(); return 0; } if(a >= Leo and a <= Leo1) { printf("Tu signo zodiacal es Leo"); getch(); return 0; } if(a >= Virgo and a <= Virgo1) { printf("Tu signo zodiacal es Virgo"); getch(); return 0; } if(a >= Libra and a <= Libra1) { printf("Tu signo zodiacal es Libra"); getch(); return 0; } if(a >= Escorpio and a <= Escorpio1) { printf("Tu signo zodiacal es Escorpio"); getch(); return 0; } if(a >= Sagitario and a <= Sagitario1) { printf("Tu signo zodiacal es Sagitario"); getch(); return 0; } if(a >= Capricornio and a <= Capricornio1) { printf("Tu signo zodiacal es Capricornio"); getch(); return 0; } if (a >= Capricornio2 and a <= Capricornio3) { printf("Tu signo zodiacal es Capricornio"); getch(); return 0; } }
Con todas las constantes que estan ahi, me da mensaje de error a las que tienen numeros con 8 y 9. Me aparece este mensaje de error: invalid digit in octal constant. Porque???
|
|
|
En línea
|
You, stop to close my post, you were novice too!!!!!!!!!!!!
|
|
|
x64core
Desconectado
Mensajes: 1.908
|
por eso, porque para representar numeros en base 8 llega hasta ahí osea que el numero maximo es 7 es igual que en hexadecimal, es 16 pero llega hasta F
|
|
|
En línea
|
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
Porque en C las constantes numéricas enteras que inician con un cero se toman como base 8 y en esta base solo son validos los dígitos 0 a 7. Para eliminar ese error basta con eliminar el cero inicial. Aparte de eso deberías eliminar el uso de la biblioteca conio de Borland. El porque de ello es explica en el tema |Lo que no hay que hacer en C/C++. Nivel basico|. Por ultimo en tu programa los casos son exclusivos (no se puede ser de un signo y otro a la vez) y todas las sentencias de selección "if" terminan con: return 0;
Eso lo debes colocar solo una vez, justo antes del final de la función principal. Un saludo
|
|
|
En línea
|
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language
|
|
|
|
Anastacio
Desconectado
Mensajes: 111
|
Nunca se podria ser de un signo y otro a la vez. A que te refieres con eso??
Nota: No uso borland.
Ya acomode lo otro, gracias!!!!
|
|
|
En línea
|
You, stop to close my post, you were novice too!!!!!!!!!!!!
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
Como sabras los '0' a la izquierda de un numero no influyen... quitalos... que si no estaras haciendo valores OCTALES... jamas dejes 0 a la izquierda...
en C/C++ 015 es dinto de 15 ya que 015 esta en octal y 15 en decimal...
015 octal = 13 en decimal...
Dulces Lunas!¡.
|
|
« Última modificación: 21 Enero 2012, 02:22 am por BlackZeroX (Astaroth) »
|
En línea
|
The Dark Shadow is my passion.
|
|
|
Anastacio
Desconectado
Mensajes: 111
|
Muchas gracias a todos.
|
|
|
En línea
|
You, stop to close my post, you were novice too!!!!!!!!!!!!
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Duda] Insertar a este código, Mensaje de Error en caso de...
Programación Visual Basic
|
Soir
|
4
|
2,328
|
15 Agosto 2010, 00:15 am
por Fitoschido
|
|
|
error...no sé como suprimir este mensaje ....
Foro Libre
|
Constance
|
6
|
3,356
|
26 Abril 2011, 03:30 am
por flacc
|
|
|
¿Porque me aparece este error en esta funcion?
Programación C/C++
|
SonicBlader
|
1
|
2,874
|
26 Mayo 2012, 06:11 am
por The Swash
|
|
|
me aparece un error en este ejercicio
Programación C/C++
|
terry2602
|
4
|
2,627
|
30 Mayo 2012, 05:24 am
por durasno
|
|
|
Por que me aparece este error !!!
Programación C/C++
|
BrokerJoker
|
7
|
3,951
|
3 Junio 2012, 23:32 pm
por BrokerJoker
|
|