Autor
|
Tema: tengo un problema con este programa. (Leído 4,192 veces)
|
Danyel_Casvill
Desconectado
Mensajes: 113
adada
|
#include <iostream.h> #include <conio.h> int main() { int n; cout<<"ingrese el numero: "; cin>>n; if (n < 100) { cout<<"el numero es menor que 100"; } else if (n > 100) { cout<<"el numero es mayor que 100"; } else if (n == 100) { cout<<"el numero es igual a 100"; } else { cout<<"error, el numero ingresado es invalido"; } getch(); }
Hola, el problema es que aun no se utilizar muy bien que digamos las sentencias if, else y else if, enteonces, lo que creo mal quedo, fue la sentencia else, pues cuando ingreso alguna letra, el programa dice que el numero ingresado es mayor que 100, cuando deberia decir: error, el numero ingresado es invalido.
Gracias por sus respuestas, bye.
|
|
|
En línea
|
adada
|
|
|
xassiz~
|
Para empezar, usa el resaltado de sintaxis [code=cpp][/code]. Veamos, si tu creas una variable int contendrá valores enteros. Si ingresas una letra, va a ser convertida a su valor numérico (en este caso ASCII). Por ejemplo, si ingresas a la variable contendrá 97. Luego, conio.h no es estándar, no la uses, y menos para hacer una "pausa" innecesaria. Y cambia: #include <iostream.h>
Por: #include <iostream>
Saludos!
|
|
« Última modificación: 9 Noviembre 2010, 23:32 pm por pablomi »
|
En línea
|
|
|
|
Danyel_Casvill
Desconectado
Mensajes: 113
adada
|
mmmm, ya, entonces debo usar float?? si es asi, el problema sigue, solo que ahora dice que el numero es menor que 100, y pues gracias, no era necesario poner .h (apenas me vengo a dar cuenta XDDD).
respecto a lo de la "pausa", entonces que debo utilizar para la pausa?? por que si no lo utilizo, simplemente no alcanzo a ver el resultado.
Gracias, bye.
|
|
|
En línea
|
adada
|
|
|
bomba1990
|
Yo no se mucho de este tema, estoy aprendiendo apenas a progrmar en c++ pero creo que lo que te dijo fue que la variable de texto tiene un equivalente en codigo ascii y lo que introduscas es interpretado como tal como numeros, ahora abria que buscar una funcion que solo agarre numeros, no estoy muy seguro pero creo que con scanf, vamos a esperar que u guru nos diga si es asi o no.
mas o menso digo asi
scanf ("%d", &n);
|
|
« Última modificación: 10 Noviembre 2010, 02:28 am por bomba1990 »
|
En línea
|
|
|
|
|
Danyel_Casvill
Desconectado
Mensajes: 113
adada
|
hey, flony, iualmente sigue el problema (aun asi gracias por aportar), bomba1990, gracias, segun lo que me dices, lo que entiendo es que el programa me lee las letras como si fuesen numeros por lo cual me da x o y resultado (numero), entonces tu me dices que con scanf puedo arreglar ello pero en que libreria puedo encontrarlo??
Gracias mens, bye.
con stdio??
|
|
« Última modificación: 10 Noviembre 2010, 05:51 am por danyhack »
|
En línea
|
adada
|
|
|
bomba1990
|
#include <stdio.h> #include <conio.h> int modulo(int x, int y); int main(void) { int var1; scanf("%d",&var1); if(var1<100) { printf("el numero es menor que 100 %d",var1); } else if(var1==100) { printf("el numero es 100"); } else if(var1>100) { printf("El numero es mayor que 100"); }else{ printf("el numero es invalido"); } }
bueno acomode la funcion asi aunque igual me da como salida cuando meto un caracter el que sea y me alamcena un 2, estuve leyendo que la forma de para validar eso como es debido es tratarlo como char y despues anlizar cada caracter a ver is es numerico o no. lee sobre estas funciones a ver si te sirven stdlib (atoi, atof) y ctype (isdigit, isnumber)
|
|
|
En línea
|
|
|
|
ShadowStorm
Desconectado
Mensajes: 9
|
#include <iostream.h> #include <conio.h> int main() { int n; cout<<"ingrese el numero: "; cin>>n; if (n < 100) { cout<<"el numero es menor que 100"; } else if (n > 100) { cout<<"el numero es mayor que 100"; } else if (n == 100) { cout<<"el numero es igual a 100"; } else { cout<<"error, el numero ingresado es invalido"; } getch(); }
Hola, el problema es que aun no se utilizar muy bien que digamos las sentencias if, else y else if, enteonces, lo que creo mal quedo, fue la sentencia else, pues cuando ingreso alguna letra, el programa dice que el numero ingresado es mayor que 100, cuando deberia decir: error, el numero ingresado es invalido.
Gracias por sus respuestas, bye.
Podrías realizarlo de la siguiente manera: #include <iostream.h> int main() { int n = 0; cout<<"ingrese el numero: "; cin>>n; if(cin.peek() != '\n') { cout<<"error, el numero ingresado es invalido"<< endl; } else { if (n < 100) cout<<"el numero es menor que 100"; else if (n > 100) cout<<"el numero es mayor que 100"; else if (n == 100) cout<<"el numero es igual a 100"; } cout<<endl<<endl; cout<< "Presiona ENTER para salir"; cin.sync(); cin.get(); return 0; }
Averigua sobre cin.peek()
|
|
|
En línea
|
|
|
|
Danyel_Casvill
Desconectado
Mensajes: 113
adada
|
hey mens, gracias, de una vez me voy a poner a averiguar sobre cin.peek() y sobre stdlib (atoi, atof) y ctype (isdigit, isnumber).
Mucgas gracias, bye.
|
|
|
En línea
|
adada
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
tengo un problema con este programa en c++
Programación C/C++
|
mikael2018
|
1
|
1,760
|
29 Octubre 2014, 15:35 pm
por eferion
|
|
|
Tengo un problema con un programa en C
Programación C/C++
|
maic1020
|
1
|
1,767
|
11 Noviembre 2016, 13:51 pm
por MAFUS
|
|
|
Instalar este programa y no tengo ni idea en Linux
« 1 2 3 »
GNU/Linux
|
Meta
|
28
|
12,262
|
5 Diciembre 2016, 14:06 pm
por MinusFour
|
|
|
Programa C++ Tengo una duda con respecto a este programa.
« 1 2 »
Programación C/C++
|
Estudiante000000
|
16
|
5,355
|
22 Noviembre 2018, 03:29 am
por Estudiante000000
|
|
|
Tengo problema con mi pc Ojo, no econtre este tema aqui
Windows
|
planton
|
6
|
6,628
|
2 Junio 2020, 00:29 am
por planton
|
|