Добавление алгоритма сортировки (пузырьковая сортировка) в программу

Вот вопрос, который я получил из прошлой статьи в нашем университете:

  1. Пользователь может ввести размер массива
  2. Пользователь может ввести некоторые значения в массив; (пока он не будет соответствовать размеру массива, заданному пользователем
  3. Массив, введенный пользователем. Должен быть отсортирован с использованием алгоритма пузырьковой сортировки

Например

  • Я ввел размер 3
  • Я могу ввести три числа, давайте предположим, 12, 2, 5

Сортировать надо вот так 2.5.12

Используя две функции, функцию ввода и функцию алгоритма пузырьковой сортировки, я написал функцию ввода следующим образом:

void input_score(int array[], int score)
{
for(int i=0; i<score; i++)
{
cout<<"enter the machine values\n";
cin>>array[i];
}
for(int i=0; i<score; i++)
{
cout<<array[i];
}
}

Затем после этого я хочу вызвать функцию алгоритма пузырьковой сортировки, чтобы отсортировать ее и вывести:

void sort_array(int array[],int score){
int temp;
for(int i=0;i<score;i++){
for(int j=i+1;j<score;j++){
if(array[i]>array[j]){
temp=array[i];
array[i]=array[j];
array[j]=temp;
}
}
}

cout<<"Sorted elements\n";

for(i=0;i<score;i++)
cout<<array[i]<<"\n;
}

Итак, я написал заявление в функции ввода, как это

for(i=0;i<=size;i++){
sort_array(array[i],size);
}

Я прав?
Кстати вот моя основная функция

int main()
{
cout<<" enter number of machines\n";
int a;
cin>>a;
int array[a];
input_score(array,a);
}

-4

Решение

Нет, не стоит звонить

for(i=0;i<=size;i++){
sort_array(array[i],size)
}

тебе нужно просто позвонить

sort_array(array,a);

потому что ваш void sort_array(int array[],int score){ принимает первый параметр в виде массива, а не int.
попробуйте ниже основного, и это должно работать.

int main()
{
cout<<" enter number of machines\n";
int a;
cin>>a;
int array[1000];
input_score(array,a);
sort_array(array,a);
}

или если вы хотите вызвать сортировку на входе …

void input_score(int array[], int score)
{
for(int i=0; i<score; i++)
{
cout<<"enter the machine values\n";
cin>>array[i];
}
for(int i=0; i<score; i++)
{
cout<<array[i];

}
sort_array(array,score);
}
2

Другие решения

Я не могу сказать, откуда вы вызываете функцию сортировки, но вы должны вызывать ее из функции input_score. А также использование цикла for для вызова функции сортировки не требуется.
Просто вызовите функцию один раз, например:

sort_array(array, score);

без циклов for, поскольку в функции sort_array уже есть циклы for, которые будут сортировать весь массив после передачи базового адреса массива.

И убедитесь, что вы вызываете sort_array из input_score или основной функции.

2

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector