我的氣泡排序代碼出現了什麼問題,以及如何在排序後(Lisesarch之前)將它寫出來。冒泡排序。 C++
我已經使用了基於本書中唯一例子的代碼。在網上搜索了一些關於如何按年齡對數組列表進行排序的指南,但是我找不到一個(至少,對我來說不是那麼先進的)。所以我回來了另一段代碼,可能會讓你的眼睛流血^^對不起。
#include <iostream>
#include <string>
using namespace std;
class person
{
public:
string name;
int age;
void SetInfo(const string _name, int _age)
{
name = _name;
age = _age;
}
int getAge(){ return age; }
};
int Linearsearch(person* personarray, int key)
{
for (int i = 0; i < 10; i++)
{
if (personarray[i].age == key)
return i;
}
return -1;
}
void bubblesort(person mylist[], int n)
{
for (int i = 1; i<n; i++)
{
for (int j = 0; j<n - 1; j++)
{
if (mylist[j].getAge() > mylist[j + 1].getAge())
{
person temp;
temp = mylist[j];
mylist[j] = mylist[j + 1];
mylist[j + 1] = temp;
}
}
}
}
int main()//start of program
{
person mylist[4];//List of people
mylist[0].SetInfo("Calle", 22);
mylist[1].SetInfo("Björn", 20);
mylist[2].SetInfo("Larry", 60);
mylist[3].SetInfo("Lena", 54);
//calling bubblesort()
bubblesort(mylist, 4);
int index = Linearsearch(mylist, 20);
if (index == -1)
cout << "person not found!";
else
cout << "the person you searched for " << mylist[index].name;
cin.get();
return 0;
system("pause");
}
我評論過我從代碼中得到的錯誤//。
首先,我甚至不知道我在這裏的氣泡排序代碼將針對年齡並按照我喜歡的方式進行排序。
我已經嘗試了沒有氣泡排序代碼的其餘代碼,它實際上工作得很好(:D)。
任何和所有的幫助泡沫排序代碼或如何讓它在排序後顯示將是很好的。 請投我的問題或告訴我如何改革它,使其不那麼煩惱,而不是抱怨。並且隨時可以幫助我編輯我的問題(如果可以的話)。
編譯器告訴你主要問題是什麼 - 你需要傳遞數組和列表大小作爲參數/參數到彙編,否則它不能在它們上操作,因爲它們被聲明爲main(locals) )或根本沒有:( –
所以在這種情況下,「n」需要是4?:(我是瑞典語,所以英語很難理解有時>如果我有這個權利,我可以將n重命名爲max,設置max爲4?爲了讓我更清楚 – Nyp0ns0pp0saurus
首先 - 你爲什麼要使用變量,這些變量在任何地方都沒有聲明?(比如像'ortures'或'list'中的'n')嘗試讀一些關於C++ (最好是最基本的教程) – zoska