Алгоритм, который я попробовал, неправильно сортирует код и возвращает 0.
Я попытался передать код функции, чтобы сделать ее более понятной, но я просто не могу понять это.
#include <stdio.h>
int main(void)
{
int n,i,j,size,temp,counter;
int k;
printf("How many numbers to sort?\n");
scanf("%d",&size);
int array[size];
for(i=0;i<size;i++)
{
printf("Enter number %d\n",i+1);
scanf("%d",&k);
array[i] = k;
}
// if statement for every element in the array, if it is not all minimum, then the for loop below needs to be activated.
for(j=0;j<size;j++,counter = 0) //this code runs x times, bubble sort requires x test runs.
// each time it runs, it resets counter to 0 and counts the number of mismatched elemnts in the array sorting small to large. If counter >= 1, has to run again.
// can make j < size or j < 2...
{
printf("Iteration# %d\n",j+1);
for(i=0;i<size;i++)
{
if(array[i] > array[i+1])
{
temp = array[i];
array[i] = array[i+1];
array[i+1] = temp;
counter++;
printf("%d\n",array[i]);
}
}
if (counter == 0)
{
break;
}
}
return 0;
}
Вывод работает до тех пор, пока пользователь не завершит ввод, затем он дает мне итерацию от одного до пяти и печатает 0 вместо печати отсортированного массива. Цель состоит в том, чтобы сортировать массив методом пузырей по одному и печатать каждый шаг, я также хочу, чтобы сортировка прекратилась после сортировки алгоритма, потому что если счетчик равен 0, это означает, что массив отсортирован, и программа должна прекратить работу. ,Но это продолжается до 5, я действительно не уверен, где ошибка.