Função de ordenação de Array em C

03/12/2020

0

Minha lógica com toda certeza está incorreta, contudo quero ver o array gerado, mas o compilador acusa stack smashing:

/*Implemente um algoritmo em C que ordene um array em ordem crescente*/

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

#define size 11

void *sortArray(double *arr, int arraySize);

int main(void)
{
float numbers[] = {0, 8, 1, 7, 9, 6, 2, 2, 3, 4, 5};

sortArray((double*)numbers, size);

printf("Ascending Order: ");
for (int i = 0; i < size; i++)
{
printf("%.2f ", numbers[i]);
}

return EXIT_SUCCESS;
}

void *sortArray(double *arr, int arraySize)
{
int fixedNumIndex = (arraySize - 1);
double aux;
bool biggest;

for(int i = 0; i < arraySize; i++)
{
biggest = false;

for(int j = 0; j < fixedNumIndex; j++)
{
if(arr[i] > arr[j])
{
biggest = true;
}
}
if(biggest)
{
aux = arr[fixedNumIndex];

arr[fixedNumIndex] = arr[i];
arr[i] = aux;

fixedNumIndex--;
}
}
}

OUTPUT:
Ascending Order: -0.00 0.00 0.00 8.00 1.00 7.00 9.00 6.00 2.00 2.00 3.00
*** stack smashing detected ***: terminated
Aborted (core dumped)
Tiago

Tiago

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar