改正错误#include <stdlib.h> #include <time.h> #include <iostream.h> int N = 10; void BubbleSort(int a,int n); int main() { srand((unsigned int)time(0)); int a[N]={0}; int i; for(i=0;i<N;i++) a[i] = rand()%100; cout << "The Data Befor Sort:"<< endl; for(i=0;i<N;i++) cout << a[i] << "\t"; cout << endl; BubbleSort(a[N],N); cout << "The Data After Sort:"<< endl; for(i=0;i<=N;i++) cout << a[i] << "\t"; cout << endl; return 0; } void BubbleSort(int a,int n) { int i,k,t; int flag=0; i=0; while(i<n-1) { k = n-1; while(k>i) { if(a[k-1]>a[k]) { t = a[k-1]; a[k-1] = a[k]; a[k] = t; flag = 1; } k--; } i++; if(flag = 0) break; else flag = 0; } }
时间: 2024-01-19 15:04:55 浏览: 69
修改后的代码如下:
```c++
#include <cstdlib>
#include <ctime>
#include <iostream>
using namespace std;
const int N = 10;
void BubbleSort(int a[], int n);
int main() {
srand((unsigned int)time(0));
int a[N] = {0};
int i;
for (i = 0; i < N; i++)
a[i] = rand() % 100;
cout << "The Data Before Sort:" << endl;
for (i = 0; i < N; i++)
cout << a[i] << "\t";
cout << endl;
BubbleSort(a, N);
cout << "The Data After Sort:" << endl;
for (i = 0; i < N; i++)
cout << a[i] << "\t";
cout << endl;
return 0;
}
void BubbleSort(int a[], int n) {
int i, k, t;
int flag = 0;
i = 0;
while (i < n - 1) {
k = n - 1;
while (k > i) {
if (a[k - 1] > a[k]) {
t = a[k - 1];
a[k - 1] = a[k];
a[k] = t;
flag = 1;
}
k--;
}
i++;
if (flag == 0)
break;
else
flag = 0;
}
}
```
主要的修改如下:
- 修改头文件,将 `stdlib.h` 和 `time.h` 改为 `cstdlib` 和 `ctime`。
- 修改命名空间,将 `iostream.h` 改为 `iostream`。
- 修改函数参数,将 `BubbleSort(int a, int n)` 改为 `BubbleSort(int a[], int n)`。
- 修改传参方式,将 `BubbleSort(a[N], N)` 改为 `BubbleSort(a, N)`。
- 修改比较符号,将 `if(flag = 0)` 改为 `if(flag == 0)`。
阅读全文