我的气泡排序代码出现了什么问题,以及如何在排序后(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