程序输入名称和高度并显示它。我不知道如何显示列表中最高人的姓名和身高

Program to input Name and Height and Display it. I can't figure out how to display the name and Height of the tallest person in the list

本文关键字:显示 列表 高人 高度 输入 何显示 程序 我不知道      更新时间:2023-10-16
void insertname()
{
while (true)
{
char dec;
nodename* temp;
temp = new nodename;
std::cout << "ENTER YOUR NAME : ";
std::cin >> temp->name;
std::cout << "ENTER YOUR HEIGHT : ";
std::cin >> temp->height;
std::cout << 'n';
temp->next = NULL;
if (rear == NULL)
{
rear = temp;
front = temp;
}
else
{
rear->next = temp;
rear = temp;
}
std::cout << "ADD ANOTHER DATA? (Y/N) : ";
std::cin >> dec;
std::cout << 'n';
if (dec == 'n' || dec == 'N')
{
break;
}
}
}
void display()
{
nodename* temp = front;
while (temp != NULL)
{
std::cout << "--------------------------" << 'n';
std::cout << "NAME : " << temp->name << endl;
std::cout << showpoint << fixed << setprecision(0);
std::cout << "HEIGHT : " << temp->height << endl;
std::cout << showpoint << fixed << setprecision(2);
temp = temp->next;
std::cout << "--------------------------" << 'n';
}
}

这使用带有队列的链表来显示我已经完成的姓名和身高,但我找不到一种方法来显示输出,以便它显示列表中最高人的姓名和身高。对于程序中的任何错误,我很抱歉我对编程相对较新,并且仍在学习。我真的很感激帮助

据我了解,您正在寻找的是 STL 库排序函数,您可以简单地使用:

std::sort(arr, sizeof(arr)/sizeof(arr[0]), greater<int>());

按降序对任何数组进行排序。

您不需要链表,可以使用滚动最大值:

std::string name;
std::string name_tallest;
int height = 0;
int tallest_height = 0;
static const char name_prompt[] = "Enter your name:n";
static const char height_prompt[] = "Enter your height: ";
std::cout.write(name_prompt, sizeof(name_prompt) - 1);
while (std::cin >> name)
{
std::cout.write(height_prompt, sizeof(height_prompt) - 1);
if (std::cin >> height)
{
if (height > tallest_height)
{
tallest_height = height;
name_tallest = name;
}
}
}
std::cout << "Name of tallest person: " << name_tallest << "n";
std::cout << "Height: " << tallest_height << "n";

如果要使用队列,请使用std::queue
对于列表,请使用std::list

要学习链表,请将链表代码放入单独的文件中。 不希望将链表代码与队列代码或main代码混合。