Cita:
Iniciado por Principe_Azul 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 originalint N[20] = {1, 2 ,3, 6}
N[6] = {4};
ahí quice agregar el quinto valor, pero no se agrega, también probé así:
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:
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 originalarray[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:
o bien:
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#include <iostream>
using namespace std;
int main(){
int i,cont=0,tam,array[20] = {3, 5, 8, 9, 1, 0,3, 5};
array[8] = 2;
tam=sizeof(array)/sizeof(array[0]);
cout << endl<< "array["<<8<<"]= " << array[8] << endl<< endl<< endl;
for (i=0;i<tam;i++){
if (i+2<tam && array[i]==0 && array[i+1]==0 && array[i+2]==0)
break;
else {
cout << "array["<<i<<"]= " << array[i] << endl;
cont++;
}
}
cout << "Cantidad de elementos: " << cont << endl;
cout << endl;
return 0;
}
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!!!