/* fichero listord.c */ /* Comprobar si un número está en un vector ordenado, y si no está, incluirlo */ #include #include void main(void) { int i, j, n, num, temp, vector[100]; printf("Teclee el número de elementos: "); scanf("%d", &n); /* lectura de los elementos del vector */ for (i=0; ivector[j]) { temp = vector[i]; vector[i] = vector[j]; vector[j] = temp; } /* Escritura del vector ordenado */ printf("\n\nEl vector ordenado es:\n"); for (i=0; i vector[n-1]) { /* esta despues del ultimo */ i=n-2; j=n-1; } else { i = 0; j = n-1; while (j>i+1) { temp = (j+i)/2; if (num == vector[temp]) { printf("\n\nEl número %d pertenece al vector, en posición %d.", num, temp+1); break; } else if (num < vector[temp]) j = temp; else i = temp; } if (num == vector[i]) { printf("\n\nEl número %d pertenece al vector, en posición %d.", num, i); exit(0); } else if (num == vector[j]) { printf("\n\nEl número %d pertenece al vector, en posición %d.", num, j); exit(0); } } /* Insertar num en vector[] */ if (num < vector[i]) { /* se inserta delante de i */ for (j=n-1; j>=i; j--) vector[j+1] = vector[j]; vector[i] = num; } else if (num < vector[j]) { for (j=n-1; j>i; j--) /* se inserta detrás de i */ vector[j+1] = vector[j]; vector[i+1] = num; } else /* se inserta detrás de j */ vector[j+1] = num; n++; /* Escritura del nuevo vector ordenado */ printf("\n\nEl nuevo vector ordenado es:\n"); for (i=0; i