Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: mattray10 en 2 Marzo 2021, 00:37 am



Título: me van a tomar este ejercicio y necesito ayuda
Publicado por: mattray10 en 2 Marzo 2021, 00:37 am
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;
}


Título: Re: me van a tomar este ejercicio y necesito ayuda
Publicado por: Danielㅤ en 2 Marzo 2021, 00:44 am
No querés ayuda, querés que te hagan el trabajo, es decir tu tarea.

No necesitas ayuda, necesitas estudiar.


Saludos


Título: Re: me van a tomar este ejercicio y necesito ayuda
Publicado por: 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


Título: Re: me van a tomar este ejercicio y necesito ayuda
Publicado por: Xyzed en 2 Marzo 2021, 01:03 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.


Título: Re: me van a tomar este ejercicio y necesito ayuda
Publicado por: mattray10 en 2 Marzo 2021, 01:29 am
Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5.  
  6. int main()
  7. {
  8.    int n, cont=0,par=0,neg=0,pos=0,impar=0;
  9.  
  10.    cout<<"ingrese un numero: ";cin>>n;
  11.    for(int i=0;i<=5;i++){
  12.    while(n!=0){
  13.    cout<<"ingrese un numero: ";cin>>n;
  14.    cont++;
  15.    }
  16.    }
  17.    cout<<cont;
  18.  
  19. return 0;
  20. }
MOD: El código debe estar publicado entre etiquetas de Código GeSHi


Título: Re: me van a tomar este ejercicio y necesito ayuda
Publicado por: K-YreX en 2 Marzo 2021, 01:44 am
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
  1. const int MAX_NUMEROS = 100;
  2.  
  3. int main() {
  4.  int numero = -1; // Ponemos un valor por defecto distinto de 0 para que el for() funcione
  5.  for(int i = 0; i < MAX_NUMEROS && numero != 0; ++i) {
  6.    // Aqui haces todo lo que tengas que hacer
  7.  }
  8. }

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


Título: Re: me van a tomar este ejercicio y necesito ayuda
Publicado por: El_ente en 2 Abril 2021, 11:45 am
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