me van a tomar este ejercicio y necesito ayuda

Iniciado por mattray10, 2 Marzo 2021, 00:37 AM

0 Miembros y 2 Visitantes están viendo este tema.

mattray10

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;
}

Danielㅤ

No querés ayuda, querés que te hagan el trabajo, es decir tu tarea.

No necesitas ayuda, necesitas estudiar.


Saludos
¡Regresando como cual Fenix! ~
Bomber Code © 2021 https://www.bombercode.net/foro/

Ayudas - Aportes - Tutoriales - Y mucho mas!!!

mattray10

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

Xyzed

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.
...

mattray10

#4
Código (cpp) [Seleccionar]

#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

K-YreX

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.
Código (cpp) [Seleccionar]

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
Código (cpp) [Seleccionar]

cout << "Todos tenemos un defecto, un error en nuestro código" << endl;

El_ente

#6
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