Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Prepa305001 en 20 Julio 2019, 21:37 pm



Título: ayuda con este error en c
Publicado por: Prepa305001 en 20 Julio 2019, 21:37 pm
 Haz un programa que lea una serie de números enteros con valores comprendidos entre 0 y 1000,
hasta que nos introduzcan un número entero que no esté comprendido entre esos valores(no puede dar de alta más de 100 valores)
El programa debe escribir después, los valores entre 0 y 1000 que el usuario había introducido. Usa un vector...

esto llevo
#include <stdio.h>

int main()
{
int x;
   
    for(int x=0; x<1000 ;x++)
    {
    printf("escribe un valor del 0 al 1000: ");
    scanf("%i",&x);
    } 
   


}

pero como le hago para que no de de alta mas de 100 valores o que no se pongan numeros negativos


Título: Re: ayuda con este error en c
Publicado por: MAFUS en 20 Julio 2019, 21:41 pm
Recuerda los ifs


Título: Re: Respuesta #1
Publicado por: Prepa305001 en 20 Julio 2019, 22:06 pm
#include <stdio.h>

int main()
{
int x[100], contador, suma;
    
    contador=0;
suma=0;
    contador++;
    
    for(int x=0; x<1000 ;x++)
    {
    printf("escribe un valor del 0 al 1000: ");
    scanf("%i",&x,&contador);
    contador++;
    if(x<0 || x>1000){
  
        suma+=contador;

    
        printf("\nlos valores introducidos son \n%i",suma);
        return 0;
    }  
            }
  


}


y lo que me sale es....
escribe un valor del 0 al 1000: 1                                                                                                                                    
escribe un valor del 0 al 1000: 2                                                                                                                                    
escribe un valor del 0 al 1000: 3                                                                                                                                    
escribe un valor del 0 al 1000: 4                                                                                                                                    
escribe un valor del 0 al 1000: -99                                                                                                                                  
                                                                                                                                                                      
los valores introducidos son                                                                                                                                          
6                                                                                                                                                                    
                                                                                                                                                                      
...Program finished with exit code 0
por que me agrega un caracter de mas y como le hago para que no me cuenten valores debajo de 0 y mas alto que 1000


Título: Re: ayuda con este error en c
Publicado por: @XSStringManolo en 21 Julio 2019, 01:14 am
Seguro que el programa no tiene que ser en C++ u otro lenguaje? Te pide el uso de vectores. Un vector es un array que crece dinámicamente. Se puede hacer una implementanción de un vector en C. Pero no creo que sea lo que te pide. O es un programa para C++ o la descripción del ejercicio es erronea y se refiere a un array.

Cosas que te pide:
-Leer y almacenar serie de números introducidos por el usuario con valores comprendidos entre 0 y 1000.
-En caso de el número no estar comprendido entre esos valores detener la ejecución.
-Máximo tomar 100 valores.
-Imprimir valores almacenados.

La opción de C++ con vectores es muy sencilla:
Código
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. vector<int> vectorDeInts;
  5.  
  6. int main()
  7. {
  8. int numero = 1;
  9.   while ( (numero > 0 && numero <1000) && vectorDeInts.size() != 100)
  10.   {
  11.   cout << "Pon numero" << endl;
  12.   cin >> numero;
  13.   vectorDeInts.append(numero);
  14.   }
  15. cout << vectorDeInts;
  16. return 0;
  17. }



Título: Re: ayuda con este error en c
Publicado por: EdePC en 21 Julio 2019, 02:49 am
Saludos,

- Dependiendo del profesor suele llamarse Vector a un Array Unidimensional, y Matriz a un Array Multidimensional, en especial cuando se trabaja con programación sencilla donde no existen cosas raras como Arrays Redimensionables o Especiales.

- Recomiendo el uso de While en lugar de For, tal como muestra Manolo, un While es más lógico al enunciado del problema, aunque un For es más estructurado, lo que no sé es porque le ponés a tu For para que vaya del 0 al 1000 si solo pide 100 XD, si usas For puede ser necesario usar un Break, mejor usar While.

- Depende mucho de los temas que se está tratando el Profesor, si se necesita usar If, While, Break o solo For, o también se puede usar operadores de comparación, etc. Puedes usar tu contador para controlar el "tamaño" del vector que usa Manolo y también para referirte al índice.