Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: GeorgeDef en 14 Octubre 2018, 23:40 PM

Título: Crear un Programa en C que almacene N datos en un arreglo
Publicado por: GeorgeDef en 14 Octubre 2018, 23:40 PM
Lo que pasa es que ya realize este codigo pero al momento de ejecutarlo que guarde mas de 10 valores me sale error de ejecución y quisiera saber si me pueden ayudar
#include<stdio.h>
#include<windows.h>
#include<conio.h>
main()
{
   int i,n,num[n];
   printf("Cuantos datos desea almacenar: ");
   scanf("%d", &n);
   for(i=0;i<n;i++)
   {
      printf("Teclea el Valor %d: ", (i+1));
      scanf("%d", &num);
   }
   system("PAUSE");
   system("CLS");
   printf("El arreglo quedo:\n");
   for(i=0;i<n;i++)
   {
      printf("%d,", num);
   }
   getche();
}
Título: Re: Crear un Programa en C que almacene N datos en un arreglo
Publicado por: MAFUS en 14 Octubre 2018, 23:44 PM
No se puede declarar un array estático usando una variable para dimensionarlo.
Título: Re: Crear un Programa en C que almacene N datos en un arreglo
Publicado por: GeorgeDef en 14 Octubre 2018, 23:48 PM
Entonces si  no es mucha molestia me podrias decir como declararlo para poder usarlo sin problemas?
Título: Re: Crear un Programa en C que almacene N datos en un arreglo
Publicado por: Beginner Web en 15 Octubre 2018, 00:03 AM
Mmmmm

Código (cpp) [Seleccionar]
#include<stdio.h>
#include<windows.h>
#include<conio.h>
main()
{
  int i,n;
  printf("Cuantos datos desea almacenar: ");
  scanf("%d", &n);
  int num[n];
  for(i=0;i<n;i++)
  {
     printf("Teclea el Valor %d: ", (i+1));
     scanf("%d", &num);//scanf("%d",&num[i]);//ummm...
  }
  system("PAUSE");
  system("CLS");
  printf("El arreglo quedo:\n");
  for(i=0;i<n;i++)
  {
     printf("%d,", num);//printf("%d,", num[i]);//ummm...
  }
  getche();
}
Título: Re: Crear un Programa en C que almacene N datos en un arreglo
Publicado por: GeorgeDef en 15 Octubre 2018, 00:38 AM
ya quedo resuelto mi problema, muchas gracias
Cita de: Beginner Web en 15 Octubre 2018, 00:03 AM
Mmmmm

Código (cpp) [Seleccionar]
#include<stdio.h>
#include<windows.h>
#include<conio.h>
main()
{
   int i,n;
   printf("Cuantos datos desea almacenar: ");
   scanf("%d", &n);
   int num[n];
   for(i=0;i<n;i++)
   {
      printf("Teclea el Valor %d: ", (i+1));
      scanf("%d", &num);//scanf("%d",&num[i]);//ummm...
   }
   system("PAUSE");
   system("CLS");
   printf("El arreglo quedo:\n");
   for(i=0;i<n;i++)
   {
      printf("%d,", num);//printf("%d,", num[i]);//ummm...
   }
   getche();
}

Título: Re: Crear un Programa en C que almacene N datos en un arreglo
Publicado por: MAFUS en 15 Octubre 2018, 15:31 PM
Se sigue declarando un array con una variable y esto depende del compilador que funcione.
Para hacerlo acorde al estándar usas un array grande, suficiente para cubrir tus necesidades, o usas la memoria dinámica con malloc.
Título: Re: Crear un Programa en C que almacene N datos en un arreglo
Publicado por: Beginner Web en 15 Octubre 2018, 16:59 PM
Es cierto tiene razon declaralo fuera del main de esta forma queda mas elegante y no tenes que reescribir todo el codigo modificando el tamaño en cada modulo
const int TAMAÑOARREGLO=256;
typedef int arreglo[TAMAÑOARREGLO]; y lo usas en tu programa principal de este forma
programa principal()
{
arreglo miarreglo;
y luego lo llenas hasta donde declares otro tamaño n por ejemplo sera igual a 4, entonces llenas tu arreglo hasta la posicion 4 de tu arreglo; es decir desde la posicion 0 hasta la posicion 3;
for(int i=0;i<n;++i){agregar numero en miarreglo en la posicion i;} y asi
}
Pero todo dependera de tus necesidades, si asi te lo pide tu maestro asi sera, tambien puedes usar estructuras dinamicas que crecen hasta donde de la memoria ram
Título: Re: Crear un Programa en C que almacene N datos en un arreglo
Publicado por: WHK en 19 Octubre 2018, 03:48 AM
No sale mas fácil hacer un redimensionado de memoria utilizando memcpy() o malloc() de stdlib.h para c y prevenir los desbordamientos?