Вы находитесь на странице: 1из 2

1:

2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:

/* Problema 2: Corrimiento de valores dentro de un vector


Considere un vector que contiene las edades de n persona, donde n es menor que la capa
Elabore un programa que lea una edad y una variable entera que indica el lugar donde d
Si la posicin indicada est ocupada, tendr que correr de posicin los valores que se
de excepcin que puedan presentarse, dado que no deben existir posiciones intermedias
#include <stdio.h>
main() {
// Declaracin de variables simples
int i; // Contador de posiciones dentro del vector
int pausa; // almacena la pausa para observar la ejecucin
int n = 5; // cantidad de edades que contiene el vector
int valor; // valor que se insertar
int posicion; // posicin donde se insertar el valor
int aceptado = 0; // almacena si los valores ledos se aceptan
// Declaracin del vector
int vector[7];
// Carga esttica de los valores de entrada del vector, los
// valores cero sealan posiciones vacas
vector[0] = 25;
vector[1] = 225;
vector[2] = 425;
vector[3] = 125;
vector[4] = 235;
vector[5] = 0;
vector[6] = 0;

//
//
//
//
//
//

Leer el valor y la posicin donde se insertar


No se conoce de antemano cuales posiciones del vector estn
ocupadas.... se deben identificar... adems se debe comprobar
que en vector se puede incluir el valor.... los valores 0 en
vector se asumen como vacos...
Los valores ledos deben ser diferentes de cero

// Comprobar que se pueden incluir valores en el vector


if (vector[n + 1] == 0) {
// Se pueden incluir los valores en el vector
// Incluir elemento
// El elemento ledo debe ser colocado entre las posiciones
// 0 a la n
// aceptado es una variable lgica que controlar
// si el elemento se puede (1) o no incluir (0)
while (aceptado == 0) {
printf("Valor que se insertar, diferente de cero: ");
scanf("%d", &valor);
printf("Posicin donde ser insertar el valor: ");
scanf("%d", &posicion);
// Comprobar si el vector tiene
if ((posicion >= 0) && (posicion <= n)) {
// se aceptan los valores

56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80: }

aceptado = 1;
} else {
// se rechazan los valores
printf("El valor capturado no se colocar entre las posiciones\n");
printf("0 y %d, favor captarlos de nuevo\n",n);
}
}
// correr los elementos del vector para liberar la posicin donde se incluir el valor
for (i = n; i >= posicion; i-- ) {
vector[i + 1] = vector[i];
}
// Asignar el valor que se captur
vector[posicion] = valor;
} else {
// No se pueden incluir los valores en el vector
printf("No se puede incluir ningn elemento, no hay posiciones vacas...\n");
}
// Detener la ejecucin del programa para observar los resultados
pausa = getchar();

Вам также может понравиться