行搜索和冒泡排序的问题

Problems With linesearch and Bubblesort

本文关键字:问题 冒泡排序 搜索      更新时间:2023-10-16

我用 c++ 制作一个需要几个人的程序,将它们放在一个带有名称和年龄的向量中,我为它编写了所有代码,但我无法让它正确编译。

这是我到目前为止的代码

#include <iostream>
#include <string>
using namespace std;
class person
{
public:
    string name;
    int age;
    void SetInfo(const string _name, int _age) //Här läggs den viktigaste informationen in
    {
        name = _name;
        age = _age;
    }
    int getAge(){ return age; }
};

void bubblesort(person mylist[], int n) // Här startar Bubblesort funktionen
{
    for (int i = 1; i<n; i++)
    {
        for (int j = 0; j<i - 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() //Program start
{
    person mylist[4]; //lista på personer
    mylist[0].SetInfo("Johan", 25);
    mylist[1].SetInfo("Nathalie", 20);
    mylist[2].SetInfo("Jessica", 60);
    mylist[3].SetInfo("Coco", 54);

    //anropar bubblesort()
    bubblesort(mylist, 4);

    int index = Linesearch(mylist, 25);
    if (index == -1)
        cout << "person ej funnen!";
    else
        cout << "personen du letade efter " << mylist[index].name;
    cin.get();
    return 0;
    system("pause");
}

我认为问题是我的知识,因为我是编程新手,并且只做了 4 周。我把这段代码从我自己和网上找到的例子中放在一起。所以每个答案都会帮助我学到更多:)

编辑:仍然相同的代码在此处添加了错误消息。 50 39 C:\Skrivbordet\Skola\ccxcxcxcvx.cpp [错误] "行搜索"未在此范围内声明

C++程序开始时相当空白,除了main之外根本没有任何功能可以使用。(关于这一点还有更多要说的。我相信评论会指出这一点。;))你包含了<iostream>string的标头,所以你可以使用其中声明的所有函数,这是一件好事!很多东西已经为你写好了;例如,您不必了解如何将文本写到屏幕上。

所有其他函数都是你自己写的——这也是一件好事!毕竟,一种编程语言的乐趣是什么,因为"没有功能",你不能做你想要的东西。

您已经编写(或可能复制)了一个自定义函数:bubblesort 。从那时起,您可以在任何地方使用它。它不在标准标头中,但编译器仍然将其视为通用函数;它所要做的就是从上到下读取您的代码,并在遇到新函数时存储它们的名称。

关于你的问题:Linesearch是一个函数的名称。编译器假定这一点,因为它后面跟着一个带括号的参数列表。所以,它在标准标头中查找Linesearch,发现它不在那里,然后浏览你的源代码 - 仍然没有找到它。普雷斯托!错误。

解决方案是使用现有的标准函数来执行您需要的功能(如果有的话)(我不记得了),或者自己编写该函数并将其放在源代码中的某个位置 main .(它需要¹位于使用它的第一个函数之上,在本例中为 main

¹ 我只说了半真半假;但我想在依次展开之前,你最好先阅读一本C++入门书。