向程序添加排序算法(冒泡排序)
Adding a sorting algorithm (bubble sort) to a program
这是我从我们大学过去的一篇论文中得到的一个问题:
- 用户可以输入数组大小
- 用户可以输入一些值到数组;(直到它适合用户给定的数组大小)
- 用户输入的数组应该使用冒泡排序算法进行排序
例如
- 我输入尺寸为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 valuesn";
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 elementsn";
for(i=0;i<score;i++)
cout<<array[i]<<"n;
}
所以我在输入函数中写了这样的语句
for(i=0;i<=size;i++){
sort_array(array[i],size);
}
我说的对吗?这是我的main函数
int main()
{
cout<<" enter number of machinesn";
int a;
cin>>a;
int array[a];
input_score(array,a);
}
不,你不应该调用
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 machinesn";
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 valuesn";
cin>>array[i];
}
for(int i=0; i<score; i++)
{
cout<<array[i];
}
sort_array(array,score);
}
我不能告诉你从哪里调用排序函数,但你应该从函数input_score调用它。而且使用for循环来调用排序函数也是不必要的。只需调用function一次,如:
sort_array(array, score);
没有for循环,因为sort_array函数中已经有for循环,一旦传递数组的基址,它将对整个数组进行排序。
并且,确保从input_score或main函数调用sort_array
相关文章:
- C++选择排序算法中的逻辑错误
- 排序算法c++
- 下面是排序算法O(n)吗
- 为什么我的排序算法会更改数组值
- 如何在C++中对数组进行冒泡排序
- C++运行时错误与快速排序算法抛出堆栈转储错误
- 我想在 c++ 中对单向链表进行冒泡排序,但我一直面临左值错误,无法解决它
- 排序算法问题(购买商店物品)(崩溃)
- 为什么这个选择排序算法仍然切换一个元素,当它已经是其他元素中最小的元素时?
- 为什么在此排序算法实现中,向量明显比数组慢?
- 在C++中使用冒泡排序时出现意外值
- C++中合并排序算法的奇怪行为
- 冒泡排序中所需的交换次数,而无需实际对其进行排序
- 我的排序算法程序中的堆错误
- 冒泡排序算法不起作用
- 了解冒泡排序(算法)
- 向程序添加排序算法(冒泡排序)
- 冒泡排序不排序最后一个数字与此算法
- 冒泡排序算法产生错误的输出
- 循环语句警告的冒泡排序算法