ingresar 100 números o ingresar números hasta que se ingrese el 0, lo que ocurra primero.(números ingresados por el usuario)
Finalizado el ingreso o forzada la finalización al ingresar 0, se debe indicar:
Cuántos números fueron ingresados
Cuántos números son positivos y cuántos son negativos
Cuántos números son pares y cúantos son impares
se me ocurrio esto:
#include <iostream>
using namespace std;
int main()
{
int n, cont=0,par=0,neg=0,pos=0,impar=0;
cout<<"ingrese un numero: ";cin>>n;
for(int i=0;i<=5;i++){
while(n!=0){
cout<<"ingrese un numero: ";cin>>n;
cont++;
}
}
cout<<cont;
return 0;
}
No querés ayuda, querés que te hagan el trabajo, es decir tu tarea.
No necesitas ayuda, necesitas estudiar.
Saludos
pongo un for al principio para poder ingresar los 100 números pero después cuando pongo el while no me sale del for y no se como seguir
Cita de: mattray10 en 2 Marzo 2021, 00:48 AM
pongo un for al principio para poder ingresar los 100 números pero después cuando pongo el while no me sale del for y no se como seguir
Mostra tu código y te ayudarán. No tengo conocimiento en C, solo lo toque hace unos años.
Pero no es muy complicado, si lo pasas veré si te puedo ayudar.
#include <iostream>
using namespace std;
int main()
{
int n, cont=0,par=0,neg=0,pos=0,impar=0;
cout<<"ingrese un numero: ";cin>>n;
for(int i=0;i<=5;i++){
while(n!=0){
cout<<"ingrese un numero: ";cin>>n;
cont++;
}
}
cout<<cont;
return 0;
}
MOD: El código debe estar publicado entre etiquetas de Código GeSHi
Antes que nada, el código debe publicarse siempre mediante etiquetas de Código GeSHi. Puedes seleccionarlas en el desplegable que dice "Código GeSHi" encima del cuadro de texto o escribiendo directamente:
[code=cpp]
<Tu código aquí>
[/code]
El problema viene a raíz de que la condición de <n != 0> no está contemplada en el for(). Entonces el for() no va a terminar hasta que se ingresen 5 datos.
De todas formas, un bucle dentro de otro no es la forma más apropiada de hacer esto. Debes usar dos condiciones juntas mediante un operador lógico (AND && o OR ||).
Es mejor utilizar constantes para los límites y que así se pueda modificar rápidamente y sin errores.
const int MAX_NUMEROS = 100;
int main() {
int numero = -1; // Ponemos un valor por defecto distinto de 0 para que el for() funcione
for(int i = 0; i < MAX_NUMEROS && numero != 0; ++i) {
// Aqui haces todo lo que tengas que hacer
}
}
Tienes dos opciones:
- Guardar todos los valores en un array y una vez ingresados todos, calcular lo que se pide.
- Realizar los cálculos después de pedir cada número. No es necesario usar arrays.
Inténtalo de la forma que quieras y si necesitas ayuda puedes pedirla añadiendo tus avances para poder ayudarte mejor.
Suerte :-X
Yo lo primero que veo en tu codigo, es que has declarado seis variables int cuando solo utilizas dos.
En Pascal, hay una funcion "mod" que te devuelve el resto de una division, por ejemplo: 19 mod 4 = 3
Estoy seguro que en el ide que utilices para C++ tiene que haber una funcion equivalente.
Luego ya, si no es multiplo de dos te las averiguas padre...
Por cierto, hay un hilo en el foro que dice que si las matematicas son necesarias para la programacion... por lo menos un poquillo si jjjjjjaaa