El carro de devoluciones
En una biblioteca los libros devueltos se amontonan en un carro, en el desorden en que los dejó cada lector. Reponerlos cuesta un paseo entero por el pasillo si hay que buscar el siguiente cada vez, y un solo recorrido si vienen de menor a mayor signatura. El encargado del turno de tarde pide siempre lo mismo antes de empujar el carro: la misma lista, ordenada.
Qué hay que hacer
Lee del archivo de entrada las signaturas que trae el carro y escribe en el de salida esas mismas signaturas, ordenadas de menor a mayor. No se descarta nada: si dos ejemplares llevan la misma signatura, esa signatura aparece dos veces en la salida.
El archivo que te dan
La primera línea trae n, cuántos libros hay en el carro, con 1 <= n <= 1000. Después vienen las n signaturas, enteros entre 0 y 100000, separados por espacios o por saltos de línea indistintamente.
El que tienes que escribir
Las mismas n signaturas de menor a mayor, una por línea y nada más: ni cabecera, ni totales, ni espacios sobrando al final de la línea. La última línea también termina en salto de línea.
Los casos que puedes ver
Hay 6 en total. Los demás se descubren fallando, como en el ramo.
el ejemplo del enunciado, con dos ejemplares iguales
entrada
5 7 3 9 3 1
salida
1 3 3 7 9
un valor que se repite tres veces
entrada
6 412 108 999 108 250 108
salida
108 108 108 250 412 999
Tu programa
Recibe las dos rutas por argv, igual que en el ramo. Lo que escribas con fprintf es lo que se compara.
#include <stdio.h>#include <stdlib.h>int main(int argc, char **argv) {/* Sin las dos rutas no hay nada que abrir. El corrector siempre las pasa. */if (argc < 3) {fprintf(stderr, "uso: %s entrada salida\n", argv[0]);return 1;}FILE *entrada = fopen(argv[1], "r");FILE *salida = fopen(argv[2], "w");/* Falta: leer cuántos libros trae el carro. *//* Falta: pedir sitio para esos números y leerlos uno a uno. *//* Falta: dejarlos de menor a mayor. *//* Falta: escribirlos en el archivo de salida, uno por línea. */fclose(entrada);fclose(salida);return 0;}