Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Declaracion de arreglo en programa

Estas en el tema de Declaracion de arreglo en programa en el foro de C/C++ en Foros del Web. Hola, tengo que hacer un programa que es asi Cita: Leer y acumular números hasta que el usuario lo desee, mostrar: el valor acumulado, el ...
  #1 (permalink)  
Antiguo 29/01/2015, 19:39
 
Fecha de Ingreso: diciembre-2012
Ubicación: Jardim Alegre
Mensajes: 25
Antigüedad: 11 años, 3 meses
Puntos: 0
Declaracion de arreglo en programa

Hola, tengo que hacer un programa que es asi
Cita:
Leer y acumular números hasta que el usuario lo desee, mostrar: el valor acumulado, el promedio, la cantidad de números positivos y la cantidad de números negativos
El caso es que quisiera saber como hacer que el propio usuario lo declare el valor del arreglo, le pongo de ejemplo otro programa similar que hice:

Código:
#include <stdio.h>
#include <iostream> 
using namespace std; 
#define N 3               //No quiero que este declarado asi, si no que lo declare el usuario
int main(void) {
int datos[N],indice;
float prom, suma =0.0, cont;
    for ( indice = 0;  indice < N; indice++ ) {
         cout<<"\n NUMERO?:";  
         cin>>datos[indice];
         suma = suma + datos[indice]; 
    }

    prom = suma / N ; 
    cout<<"\nEl promedio es:"<<prom;
    cont=0;
    for (indice=0;indice<N;indice++){
    if (datos[indice]<prom){   
    cont++;
    }
    }
      cout<<"\nLos datos menores al promedio son" << cont;
    return 0;
}
El programa anterior muestra el promedio, sin embargo el arreglo que es N ya esta declarado con valor de 3 en donde dice define N 3 el caso es que para hacer el nuevo programa quiero que ese N lo declare el propio usuario, algo asi como pero como le hago? intente hacer algo asi pero me da error
cout<<"Cuantos numeros?";
cin>>N;



Gracias de antemano
  #2 (permalink)  
Antiguo 29/01/2015, 20:24
Avatar de vangodp  
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 6 meses
Puntos: 38
Respuesta: Declaracion de arreglo en programa

Para eso debes usar memoria dinamica con los operadores new y delete.

Haces el: cin>>N; como quieres

...Luego reservas memoria con new:
int *datos = new int[N];

Utilizas el arreglo normalmente:
datos[0] = 18;
datos[7] = 400; // suponiendo que datos tenga al menos un tamaño de 7 o mas claro ;)

Antes de terminar el programa tienes que liberar memoria.
delete[] datos;

Listo!

http://c.conclase.net/curso/?cap=013b

Espero que te sirva de ayuda.

Etiquetas: arreglos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:38.