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();
}
No se puede declarar un array estático usando una variable para dimensionarlo.
Entonces si no es mucha molestia me podrias decir como declararlo para poder usarlo sin problemas?
Mmmmm
#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();
}
ya quedo resuelto mi problema, muchas gracias
Cita de: Beginner Web en 15 Octubre 2018, 00:03 AM
Mmmmm
#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();
}
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.
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
No sale mas fácil hacer un redimensionado de memoria utilizando memcpy() o malloc() de stdlib.h para c y prevenir los desbordamientos?