Ejercicios del capítulo 10 Variables II: Arrays

1) ¿Cuantos elementos contiene cada uno de los siguientes arrays?:

a)
int x[10][30];

261
292
300

b)
int y[][3] = {3,6,7,2,3,1,2,4};

8
9
6

c)
char z[][2][10] = {"hola", "adios", "", "saludo", "chao"};

19
24
60
120

d)
char c[] = "cacatua";

6
7
8

e)
char d[] = {'c', 'a', 'c', 'a', 't', 'u', 'a'};

6
7
8

Comentarios de los usuarios (10)

Alejandro
2012-04-13 19:30:28

No termino de entender el apratado C) del ejercicio 10

Steven R. Davidson
2012-04-13 20:05:11

Hola Alejandro,

Supongo que has leído el comentario que te da la autocorrección, si elegiste incorrectamente la respuesta. Lo que tenemos es un array de N elementos, de los cuales cada uno es un array de 2 elementos, de los cuales cada uno es un array de 10 elementos de tipo 'char'. La primera "dimensión" se puede determinar en base a la inicialización.

Partimos de la idea de que tenemos N grupos de elementos. Cada grupo contiene 2 grupos de elementos y cada elemento es un grupo de 10 'char'. Mirando la inicialización, tenemos la siguiente información:

{ "hola", "adios", "", "saludo", "chao" }

Tenemos que crear varios grupos de 2, así que tenemos esto:

{ {"hola", "adios"}, {"", "saludo"}, {"chao"} }

y cada grupo de 2 contiene un grupo de 10 'char'. Esto significa que "hola" es un grupo de 10 caracteres, "adios" es otro grupo de 10 caracteres, "" es un grupo de 10 caracteres, y así sucesivamente.

Como puedes ver, tenemos 3 grupos de 2 grupos de 10 caracteres. Así que la cuenta final es: 3 x 2 x 10 = 60 'char'.

Espero haber aclarado la duda.

Steven

Alejandro
2012-04-15 09:35:46

Gracias, lo había entendido mal ha sido muy util

Hall-9000
2013-06-26 22:21:24

Buenas Noches:

No entiendo el Apartado B de los Ejercicios del Capitulo 10.

Saludos.

Steven R. Davidson
2013-06-28 23:17:46

Hola Hal-9000,

Básicamente, debes calcular la cantidad de elementos del "primer" array, que va a crear el compilador, a partir de los valores en la inicialización. Estos elementos son de tipo 'int [3]'; es decir, son arrays de 3 enteros. Cuando termines de construir la definición del array, 'y', entonces podrás calcular su cantidad total de elementos, que guardará en memoria.

Para una pista, repasa el siguiente apartado de este capítulo 10: http://c.conclase.net/curso/index.php?cap=010#array_inicializacion

Espero que esto te oriente.

Steven

Hall-9000
2013-07-02 21:39:30

Buenas Tardes/Noches.

Creo que ahora lo entiendo. Y ya para salir completamente de dudas; ¿sería correcto afirmar que para el Primer Valor Vacío del Array, bastaría con Dividir el Número Total de Elementos entre el Valor de la Segunda Dimensión y al Cociente Sumarle uno; siempre y cuando el Resto de la División sea distinto de Cero?.

Saludos y Gracias por la Ayuda.

Steven R. Davidson
2013-07-03 05:08:38

Hola Hal-9000,

Sí, es correcto. Si la división no es exacta, entonces habría que sumar 1 elemento más a la cantidad total; no podemos tener 2/3 de un elemento :)

Hasta luego,

Steven

Sebastian
2016-04-21 18:47:25

Buenos Días:

No entiendo muy bien el apartado D) y E) del ejercicio 10

deiner
2019-05-28 16:53:00

Comentario: hola buenos días

me pueden ayudar como se resuelve paso a paso este punto

gracias

1) ¿Cuantos elementos contiene cada uno de los siguientes arrays?:

a)

int x[10][30];

261

292

300

b)

int y[][3] = {3,6,7,2,3,1,2,4};

8

9

6

c)

char z[][2][10] = {"hola", "adios", "", "saludo", "chao"};

19

24

60

120

d)

char c[] = "cacatua";

6

7

8

e)

char d[] = {'c', 'a', 'c', 'a', 't', 'u', 'a'};

6

7

8

Steven R. Davidson
2019-05-28 17:23:33

Hola Deiner,

Si pulsas el botón "corregir", damos una explicación y pistas para entender el razonamiento. En general, el compilador calculará la cantidad de elementos según los valores en la inicialización. Ten presente que un array de arrays implica que cada elemento es un array y por tanto cada elemento (cada array) debe tener el mismo tamaño. Por ejemplo en b), el array 'y' tiene elementos de tipo "int [3]", y por tanto son grupos de 3 enteros. Si caben menos, entonces se rellenan los enteros sobrantes con ceros.

Espero que esto te oriente.

Steven