Estoy tratando de tomar un número entero para ingresar e imprimirlo solo si el número es <= 2000 o si no se le pide al usuario que vuelva a ingresar el número una y otra vez.
Cuando ingreso un número mayor que 2000, me pide que ingrese el número nuevamente (que es exactamente lo que estoy tratando de hacer) y si ingreso un número mayor que 2000 nuevamente no hace nada. Parece que el ciclo se está ejecutando para siempre, pero no sé qué hice mal. Cualquier ayuda es apreciada.
Aquí está el código escrito en C ++.
#include <iostream>
using std::cout;
using std::endl;
using std::cin;
int main(){
unsigned int a = 0 ;
int out = 1;
cout << "Please enter a number : " << endl;
while (out){
cin >> a;
if (a > 2000) {
cout << "Number is greater than 2000 !" << endl;
cout << endl;
cout << "Please enter the number again : " << endl;
cin >> a;
out = 1;
} else {
cout << "Your entered number is : " << endl << a << endl;
out = 0;
}
}
return 0;
}
3 respuestas
y si vuelvo a ingresar un número mayor que 2000, no hace nada
Eso no está bien, está esperando que ingrese la siguiente entrada cin
. Dado que tiene dos cin
s en el ciclo para valores a
mayores que 2000, el segundo {{X3 }} no recibe un aviso.
Su programa se puede simplificar mucho, cambie la parte while loop
como se muestra a continuación
while (out){
cin >> a;
out=a>2000?1:0;
if(out)
cout<<"Enter number again ";
}
No lo he probado, pero puedes probar esto:
#include <iostream>
using std::cout;
using std::endl;
using std::cin;
int main(){
unsigned int a = 0 ;
cout << "Please enter a number : " << endl;
while (true){
cin >> a;
if (a > 2000) {
cout << "Number is greater than 2000 !" << endl;
cout << endl;
cout << "Please enter the number again : " << endl;
} else {
cout << "Your entered number is : " << endl << a << endl;
break;
}
}
return 0;
}
En el if (a > 2000)
No cin, y su código comenzará a funcionar, la razón es que no necesita ingresar aquí porque el bucle lo hará por usted.
Nuevas preguntas
c++
C ++ es un lenguaje de programación de propósito general. Originalmente fue diseñado como una extensión de C, y tiene una sintaxis similar, pero ahora es un lenguaje completamente diferente. Use esta etiqueta para preguntas sobre el código (que se compilará) con un compilador de C ++. Utilice una etiqueta específica de la versión para preguntas relacionadas con una revisión estándar específica [C ++ 11], [C ++ 14], [C ++ 17] o [C ++ 20] etc.