你能帮我修正这段关于冒泡排序的代码吗?
can you help me to fix this code about bubble sort?
我是新手,不知道怎么解决?
我不知道如何调用函数 void bubblesort
#include<iostream>
using namespace std;
void bubbleSort(int a[], int n)
{
for (int i = 0; i < n - 1; i++)
for (int j = n - 1; j > i; j--)
if (a[j] < a[j - 1])
swap(a[j], a[j - 1]);
}
int main() {
int a[]={1,4,7,2,6,5,3,9,8,10};
bubbleSort(a[], sizeof(a));
for (size_t i=0;i<10;i++)
{
cout<< a[i];
}
}
调用函数传递 a
及其大小的正确语法如下所示。将 a
传递给函数时不需要方括号 []
。
此外,要将数组的大小作为第二个参数传递,您可以使用 C++17
可用的 std::size
或使用下面显示的表达式 sizeof a / sizeof a[0]
。
//----------v---------------->no need for the square brackets []
bubbleSort(a, std::size(a)); //use std::size(a) with C++17
或者
bubbleSort(a, sizeof a / sizeof a[0]); //works with all C++ versions
当您将数组作为参数传递给函数时,您只需将其作为变量传递即可。在这种情况下,只需 a
即可。这是因为 arrays "decay" into pointers 所以 a
是指向数组的“指针”。
此外,我建议除以 sizeof(a[0])
以获得完整长度作为 sizeof function returns the size in bytes
bubbleSort(a, sizeof(a)/sizeof(a[0]));
您可以传递对数组的引用,而不是传递指针和长度。
您也不需要 []
来命名 a
;
template<size_t n>
void bubbleSort(int (&a)[n])
{
for (int i = 0; i < n; i++)
for (int j = i + 1; j < n; j++)
if (a[j] < a[j - 1])
std::swap(a[j], a[j - 1]);
}
int main()
{
int a[]={1,4,7,2,6,5,3,9,8,10};
bubbleSort(a);
for (size_t i=0;i<10;i++)
{
std::cout << a[i];
}
}
我是新手,不知道怎么解决? 我不知道如何调用函数 void bubblesort
#include<iostream>
using namespace std;
void bubbleSort(int a[], int n)
{
for (int i = 0; i < n - 1; i++)
for (int j = n - 1; j > i; j--)
if (a[j] < a[j - 1])
swap(a[j], a[j - 1]);
}
int main() {
int a[]={1,4,7,2,6,5,3,9,8,10};
bubbleSort(a[], sizeof(a));
for (size_t i=0;i<10;i++)
{
cout<< a[i];
}
}
调用函数传递 a
及其大小的正确语法如下所示。将 a
传递给函数时不需要方括号 []
。
此外,要将数组的大小作为第二个参数传递,您可以使用 C++17
可用的 std::size
或使用下面显示的表达式 sizeof a / sizeof a[0]
。
//----------v---------------->no need for the square brackets []
bubbleSort(a, std::size(a)); //use std::size(a) with C++17
或者
bubbleSort(a, sizeof a / sizeof a[0]); //works with all C++ versions
当您将数组作为参数传递给函数时,您只需将其作为变量传递即可。在这种情况下,只需 a
即可。这是因为 arrays "decay" into pointers 所以 a
是指向数组的“指针”。
此外,我建议除以 sizeof(a[0])
以获得完整长度作为 sizeof function returns the size in bytes
bubbleSort(a, sizeof(a)/sizeof(a[0]));
您可以传递对数组的引用,而不是传递指针和长度。
您也不需要 []
来命名 a
;
template<size_t n>
void bubbleSort(int (&a)[n])
{
for (int i = 0; i < n; i++)
for (int j = i + 1; j < n; j++)
if (a[j] < a[j - 1])
std::swap(a[j], a[j - 1]);
}
int main()
{
int a[]={1,4,7,2,6,5,3,9,8,10};
bubbleSort(a);
for (size_t i=0;i<10;i++)
{
std::cout << a[i];
}
}