我对编程很陌生。正如标题所说,我写了简单的冒泡排序代码。有3个函数,一个从用户获取数字,第二个打印它们,并且这是第三个,泡泡对数字进行排序。我强迫它至少对数字进行排序,但它仍然将一个数字转为0,我不知道。
#include <iostream>
using namespace std;
void acquire_num();
void print_num();
void sort_bubble();
int numbers[5];
int main()
{
acquire_num();
print_num();
sort_bubble();
print_num();
}
void acquire_num()
{
for (int i = 0; i < 5; i++)
{
cout << "Write " << i+1 << " number: ";
cin >> numbers[i];
}
}
void print_num()
{
cout << "Your numbers are:";
for(int i = 0; i < 5; i++)
{
cout << " " << numbers[i];
}
cout << endl;
}
void sort_bubble()
{
int indicator;
int store;
do
{
indicator = 0;
for (int i = 0; i < 5; i++)
{
if(numbers[i] > numbers[i+1])
{
indicator = indicator+1;
store = numbers[i];
numbers[i] = numbers[i+1];
numbers[i+1] = store;
}
}
}
while(indicator != 0);
}
答案 0 :(得分:1)
在i
内的0
中4
从numbers[i+1]
转到numbers[5]
的循环中,您使用for (int i = 0; i < 4; i++)
,最后将FirebaseDatabase.getInstance().setPersistenceEnabled(true);
`import { AngularFireDatabase } from 'angularfire2/database';`
这是一个无效的数组编号。改为循环{{1}}。
答案 1 :(得分:0)
您的数组有 5 元素。
将当前元素与下一个元素进行比较,您的排序循环需要从 0 运行到 3 ,因为对于4,访问下一个元素将是未定义的行为,因为它在阵列之外。