【问题标题】:Problems With linesearch and Bubblesort行搜索和冒泡排序的问题
【发布时间】:2014-12-25 13:57:59
【问题描述】:

我正在用 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 [错误] 'Linesearch' 未在此范围内声明

【问题讨论】:

  • 您的代码中没有声明定义Linesearch,您希望如何调用编译器看不到或的函数i> 存在吗?

标签: c++ vector bubble-sort


【解决方案1】:

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

其他的函数都是自己写的——也是好东西!毕竟,如果你不能做你想做的事情,因为“没有适合它的功能”,编程语言会有什么乐趣呢。

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

关于您的问题:Linesearch 是函数的名称。编译器假定这是因为它后面跟着一个带括号的参数列表。因此,它在标准头文件中查找Linesearch,发现它不在其中,然后检查您的源代码——但仍然没有找到它。快!错误。

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

¹我说的只是半真半假;但我想在依次展开那个之前,你最好先阅读 C++ 入门。

【讨论】:

    猜你喜欢
    • 2020-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-03
    • 2019-04-18
    相关资源
    最近更新 更多