c++中的冒泡排序算法


#include <iostream>
using namespace std;
int list [50];
void bsort(int list[], int n);
void printArray(int list[], int n);
int main ()
{
for (int i = 100; i > 50; i--)
{
list[i] = i;
cout << list[i] << endl;
}
int n = sizeof(list) / sizeof(list[0]);
bsort(list, n);
printArray(list, n);
return 0;
}
void bsort(int list[], int n)
{
int i, j;
for (i = 0; i <= 48; i++)
{
for (j = i+1; j <= 49; j++)
{
int temp;
if (list[i] > list[j])
{
temp = list[i];
list[i] = list [j];
list[j] = temp;
}
}
}
}
void printArray(int list[], int n)
{
for (int i = 0; i < n; i++)
cout << list[i] << " ";
cout << endl;
}

我正在学习计算机科学入门课程,目前正在尝试编写一个程序,该程序调用函数"bsort"来按递增顺序排列数组"list"的元素,但我的输出是49个零,我不知道为什么?我的教授希望我们初始化数组"list",从100开始,到51结束(按降序(。

您的初始化循环不正确。试试这个

for (int i = 0; i < 50; i++)
{
list[i] = 100 - i;
cout << list[i] << endl;
}

您的版本执行了list[100] = 100, list[99] = 99, etc,但数组的大小只有50。

最新更新