Principales respuestas
Validar numero entero positivo

Pregunta
-
hola buenos dias una pregunta como puedo validar si un numero es entero positivo es que me dejaron hacer un programa donde ongresas n numeros y solo tiene que aceptar puro entero positivo pero cuando le meto decimal ya da error solo esta protegido con numeros negativos, del cero y arriva de 100 pero en decimales ya da error les dejo mi codigo espero me puedan ayudar
- Editado IVANTO534 martes, 18 de octubre de 2016 2:02
Respuestas
-
No sé si entiendo... podría ser algo así
#include "stdafx.h" #include <iostream> int main() { int n = 0; double A[100] = {0}; std::cout << "Ingrese la Cantidad de Numeros a obtener: "; while (!(std::cin >> n).good() || n >= 100 || n <= 0) { std::cin.clear(); std::cin.ignore(1000, '\n'); std::cout << "Sigue participando "; } std::cin.clear(); std::cin.ignore(1000, '\n'); std::cout << n << std::endl; for (int i = 1; i <= n; i++) { std::cout << " Numero " << i << " :"; while (!(std::cin >> A[i]).good()) { std::cin.clear(); std::cin.ignore(1000, '\n'); std::cout << "Sigue participando "; } } return 0; }
Si te refieres a la extracción de <n>, cuando en el stream escribes "50.54", n pasa a valer 50 y en el stream se conserva el ".54\n"
¿De eso estás hablando?
- Marcado como respuesta IVANTO534 lunes, 17 de octubre de 2016 15:35
Todas las respuestas
-
No sé si entiendo... podría ser algo así
#include "stdafx.h" #include <iostream> int main() { int n = 0; double A[100] = {0}; std::cout << "Ingrese la Cantidad de Numeros a obtener: "; while (!(std::cin >> n).good() || n >= 100 || n <= 0) { std::cin.clear(); std::cin.ignore(1000, '\n'); std::cout << "Sigue participando "; } std::cin.clear(); std::cin.ignore(1000, '\n'); std::cout << n << std::endl; for (int i = 1; i <= n; i++) { std::cout << " Numero " << i << " :"; while (!(std::cin >> A[i]).good()) { std::cin.clear(); std::cin.ignore(1000, '\n'); std::cout << "Sigue participando "; } } return 0; }
Si te refieres a la extracción de <n>, cuando en el stream escribes "50.54", n pasa a valer 50 y en el stream se conserva el ".54\n"
¿De eso estás hablando?
- Marcado como respuesta IVANTO534 lunes, 17 de octubre de 2016 15:35
-
-
bro y otra duda si no es mucha molestia cuando ya estas ingresando los numeros osea cuando ya te pide la camtidad de numeros y le das 5 por ejemplo te pide ingresar
numero 1
numero 2
numero 3
numero 4
numero 5
esn esto solo quiero que acepte puro numero positivo tanto entero como decimal como le aria
-
void primero() { std::cout << "Ingrese la Cantidad de Numeros a obtener: "; while (!(std::cin >> n).good() || n >= 100 || n <= 0) { std::cin.clear(); std::cin.ignore(1000, '\n'); std::cout << "El Numero NO entra en el parametro debe ser mayor a 1 " << std::endl; std::cout << "***" << std::endl; std::cout << "---" << std::endl; std::cout << "***" << std::endl; std::cout << "Ingrese la Cantidad de Numeros a obtener: "; } std::cin.clear(); std::cin.ignore(1000, '\n'); for (int i = 1; i <= n; i++) { std::cout << " Numero " << i << " :"; while (!(std::cin >> A[i]).good() || A[i] < 0) { std::cin.clear(); std::cin.ignore(1000, '\n'); std::cout << "El número debe ser un real positivo" << std::endl; std::cout << " Numero " << i << " :"; } std::cin.clear(); std::cin.ignore(1000, '\n'); } }