diff --git a/src/sort.c b/src/sort.c index ab49757..4c353cf 100644 --- a/src/sort.c +++ b/src/sort.c @@ -179,12 +179,12 @@ int main (int argc, char **argv) { for (i = 0; i < n; i++) { if (elegir) { opt = 0; - while (opt <= 1) { + fprintf(stdout, "Elegir elemento %lli: ", i + 1); + while (!fscanf(stdin, "%d", &opt)) { + // Falló, pide de nuevo después de limpiar stdin + while ((opt = getchar()) != '\n' && opt != EOF) { } + fprintf(stdout, "Número invalido! Tiene que ser mayor de 1!\n"); fprintf(stdout, "Elegir elemento %lli: ", i + 1); - fscanf(stdin, "%d", &opt); - if (opt <= 1) { - fprintf(stdout, "Número invalido! Tiene que ser mayor de 1!\n"); - } } array[i] = opt; }