【发布时间】:2015-03-29 22:00:27
【问题描述】:
我正在尝试用指针澄清我的概念。所以我喜欢用指针做BubbleSort。我创建的代码在函数调用中有错误。我找不到它。有人可以帮我吗?
#include <iostream>
#include <iomanip>
using namespace std;
void bubbleSort(int*, const int);
void swap(int*, int*);
int main(){
const int arraySize = 5;
int array[arraySize] = { 21, 56, 19, 77, 43 };
for (int i=0; i < 5; i++){
cout << array[i] << " ";
}
bubbleSort(array, arraySize);
for (int i=0; i < 5; i++){
cout << array[i] << " ";
return 0;
}
void bubbleSort(int *arr, const int s)
{
for (int i = 0; i < s-1; i++)
{
for (int j = 0; j < s-1; j++)
if (arr[j]>arr[j + 1])
swap(&arr[j], &arr[j + 1]);
}
}
void swap(int *a, int *b){
int hold;
hold = *a;
*a = *b;
*b = hold;
}
【问题讨论】:
-
你得到的编译器错误告诉你你忘记了
}来结束你的main()函数。这就是逻辑缩进代码很常见的原因。 -
好的,谢谢。现在它正在运行但没有所需的输出。它只是给出未排列的数组
-
它确实提供了所需的输出。 ideone.com/2FxOYa
-
如果这应该是使用指针的冒泡排序,您可以使用 *(arr+j) 代替 arr[j],使用 arr+j 代替 &(arr[j])。跨度>
标签: c++ bubble-sort