Dev - C++ - Necesito ayuda con unas prácticas de arreglos

 
Vista:

Necesito ayuda con unas prácticas de arreglos

Publicado por Arreglos (8 intervenciones) el 05/11/2014 16:14:45
Que tal amigos, me podrían ayudar con unos códigos:

1. Capturar un arreglo tamaño N.
guardar un segundo arreglo con los mismos números en orden inverso.
ejem:
1,3,5,7,8 arreglo a
8,7,5,3,1 arreglo b

2. Capturar un arreglo N.
Mandar los arreglos pares a un arreglo par
Mandar los arreglos impares a un arreglo impar.
ejem:
arrA 1,2,3,4,5,6,7
arrPar 2,4,6
arrImpar 1,3,5,7

3. Generar un arreglo de tamaño N
que se capturen valores aleatorios entre 1 y 20,
e imprimir otro arreglo sin los valores repetidos.
ejem:
3,4,3,5,7,4,3,1
en el otro arreglo quedaría
3,4,5,7,1

4. Dos arreglos de tamaño 10 que guarden
números enteros. En un tercer arreglo se guardara la
suma de los primeros de la sig. manera
ejem:
arrA 1,2,3,4,5,6,7,8,9,10
arrB 11,12,13,14,15,16,17,18,19,20
arrC[0]=1er elementoA +10mo B
arrC[1]=2do elementoA+9no B
arrC[9]=10mo elementoA+1er B

espero me puedan ayudar. gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Necesito ayuda con unas prácticas de arreglos

Publicado por Jose Manuel (30 intervenciones) el 10/11/2014 12:12:38
Algunas sugerencias.

El primer problema es simple... crea dos arreglos del mismo tamaño (N), sabiendo su longitud, tienes dos opciones.

Una es suponer que la entrada se produce por teclado, en ese caso deberías de esperar a tener todos los datos.
Vamos a asumir que el primer arreglo se define en el mismo programa, y tiene una longitud dada de "N"

Simplemente haz un bucle de N a 0, lee los datos del primer arreglo de acuerdo con el bucle, e incrementa un contador definido anteriormente a 0.

Al vuelo que dicen... si N = 10 (por ejemplo), y el arreglo es de enteros con nombre A

1
2
3
4
5
6
int B[10]; // (defines el nuevo arreglo)
int cont = 0; // defines el contador
for (int i=10; i>0; i--) {
b[cont] = a[i];
cont++;
}


O algo por el estilo, otra opción sería saltarte el tema del contador y usar un "n-i" que sería mas fino

En el segundo tienes un "problema", y es que no conoces por adelantado la longitud de cada arreglo, puedes tirar "por la calle de enmedio" y definir los 2 nuevos arreglos del mismo tamaño que el inicial, en caso contrario claro, deberías antes de contar los pares y los impares para poder definir el tamaño exacto

Luego montas dos contadores desde 0 y un bucle con el tamaño del arreglo original, dentro un if que defina si el numero es par... si es así lo envías al arreglo de pares, incrementas el contador de pares y sigues. En caso contrario haces lo mismo para impares.

En el tercero deberías de montar un bucle con la longitud del arreglo actual (desde 1) para comprobar a cada entrada si hay repeticiones o no, y montar el arreglo. El truco está en hacer la primera captura de datos fuera del bucle, y luego empezar las comparaciones dentro del mismo.

El último lo veo bastante simple... un bucle de 10 elementos y metes la suma.

algo como...

1
2
3
for (int i = 0; i <9; i++){
c[i] = a[i] + b[i];
}

Lo he hecho un poco al vuelo y sin comprobar, pero lo veo bastante sencillito (y eso que yo soy autodidacta y seguramente mi código apesta por lo general)

Creo que el problema es que debes de sentarte y analizar el problema antes de escribir una sola línea, el ponerte a picar código sin tener claro que es lo que quieres hacer es una mala idea por lo general

Y recuerda que los arreglos empiezan en 0, de manera que un arreglo de 10 elementos va del 0 al 9
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar