Ver Mensaje Individual
  #44 (permalink)  
Antiguo 16/04/2014, 12:41
Avatar de leosansan
leosansan
 
Fecha de Ingreso: mayo-2012
Ubicación: GRAN CANARIA
Mensajes: 194
Antigüedad: 12 años
Puntos: 49
Respuesta: Como contar el total de items en un array

Cita:
Iniciado por Principe_Azul Ver Mensaje
hola jhonny6721, creo que es opcional especificar el tamaño de un array, de todas maneras le especifiqué un tamaño por ejemplo 20 y me devuelve el valor 20, cosa que no debería suceder, ya que yo tengo por ejemplo 4 valores:

Código C++:
Ver original
  1. int N[20] = {1, 2 ,3, 6}
  2.     N[6] = {4};

ahí quice agregar el quinto valor, pero no se agrega, también probé así:

Código C++:
Ver original
  1. int N[20] = {1, 2 ,3, 6}
  2.     N[6] = 4;

pero tampoco funciona, además me devuelve 20 y yo tengo tan sólo 4 valores.
.................................................. ...
Lo de especificar la dimensión del array no es que sea opcional, es una opción u otra.

Por ejemplo si declaro:

Código C++:
Ver original
  1. array[] = {3, 5, 8, 9, 1, 0,3, 5};

el tamaño del array está determinado impepinablemente por el número de componentes que hemos introducido entre las llaves.

En cambio si declaro:

Código C++:
Ver original
  1. array[20] = {3, 5, 8, 9, 1, 0,3, 5};

el array, desde que se inicializa al menos un elemento, se compone de veinte elementos, donde los no inicializados se inicializan a cero por defecto. Lo puedes comprobar recorriendo los veinte elementos del arrray con un for:

Cita:
array[0]= 3
array[1]= 5
array[2]= 8
array[3]= 9
array[4]= 1
array[5]= 0
array[6]= 3
array[7]= 5
array[8]= 2
array[9]= 0
array[10]= 0
array[11]= 0
array[12]= 0
array[13]= 0
array[14]= 0
array[15]= 0
array[16]= 0
array[17]= 0
array[18]= 0
array[19]= 0
Cantidad de elementos: 20
El declarar 20 e inicializar unos pocos te permite agregar en las posiciones libres más elementos o variar la ya ocupada. Es decir puedes hacer tranquilamente en el ejemplo anterior:

Código C++:
Ver original
  1. array[8] = 2;

o bien:

Código C++:
Ver original
  1. array[2] = 2;

Y si lo que quieres saber es cuántos elementos realmente has declarado, sin incluir a los nulos que se rellenan por defecto, y en el supuesto de que no hallas introducido dos ceros consecutivos, siempre puedes hacer:

Código C++:
Ver original
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main(){
  6.     int i,cont=0,tam,array[20] = {3, 5, 8, 9, 1, 0,3, 5};
  7.     array[8] = 2;
  8.     tam=sizeof(array)/sizeof(array[0]);
  9.     cout << endl<< "array["<<8<<"]= " << array[8] << endl<< endl<< endl;
  10.     for (i=0;i<tam;i++){
  11.       if (i+2<tam && array[i]==0 && array[i+1]==0 && array[i+2]==0)
  12.         break;
  13.       else {
  14.         cout << "array["<<i<<"]= " << array[i] << endl;
  15.         cont++;
  16.       }
  17.     }
  18.     cout << "Cantidad de elementos: " << cont << endl;
  19.     cout << endl;
  20.     return 0;
  21. }

Con la salida esperada:

Cita:

array[8]= 2


array[0]= 3
array[1]= 5
array[2]= 8
array[3]= 9
array[4]= 1
array[5]= 0
array[6]= 3
array[7]= 5
array[8]= 2
Cantidad de elementos ocupados: 9
¡¡¡Saluditos!!!