¿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:
Los valores ordenados no se están imprimiendo. ¿Dónde están los errores en este código?</stdio.h>
davy.ai
Hay dos errores en el código.
Primero, la parte de intercambio del código es incorrecta. Debería ser:
Segundo, la instrucción de impresión para el arreglo ordenado no tiene un carácter de salto de línea. Debería ser:
Después de hacer estos cambios, el código debería imprimir correctamente el arreglo ordenado.