es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué este código del Algoritmo de Selección (Selection Sort) no está arrojando resultados?

El código:


#include <stdio.h> int main() { int i, j, temp, a[10] = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }, n = 10; printf("Antes de ordenar, el arreglo es:"); for (i = 0; i < n; i++) printf("%d ", a[i]); for (i = 0; i < n - 1; i++) { temp = i; for (j = i + 1; j < n; j++) { if (a[j] < a[temp]) temp = j; } if (temp != i) { a[j] = a[j] + a[temp]; a[temp] = a[j] - a[temp]; a[j] = a[j] - a[temp]; } } printf("\nDespués de ordenar, el arreglo es:"); for (i = 0; i < n; i++) printf("%d ", a[i]); return 0; }

La salida:

Imagen

Los valores ordenados no se están imprimiendo. ¿Dónde están los errores en este código?</stdio.h>

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Hay dos errores en el código.

    Primero, la parte de intercambio del código es incorrecta. Debería ser:

    int tmp = a[temp];
    a[temp] = a[i];
    a[i] = tmp;
    

    Segundo, la instrucción de impresión para el arreglo ordenado no tiene un carácter de salto de línea. Debería ser:

    printf("\nDespués de ordenar, el arreglo es:\n");
    

    Después de hacer estos cambios, el código debería imprimir correctamente el arreglo ordenado.

Comments are closed.