gpt4 book ai didi

c++ - 按顺序显示字符串 - 练习题

转载 作者:太空宇宙 更新时间:2023-11-04 14:23:47 26 4
gpt4 key购买 nike

所以,我目前正在阅读 Bjarne Stroustrup 的“编程:使用 C++ 的原理和实践”,我正在阅读第 3 章。书中有一个问题是“编写一个程序,提示用户输入 3 个字符串值,然后按逗号分隔的顺序输出值。因此,如果用户输入值“Steinbeck”、“Hemingway”、“Fitzgerald”,则输出应为“Fitzgerald、Hemingway、Steinbeck”。

我目前被困在那个问题上,我似乎无法使该程序运行。我知道如何按数字序列输出整数,就像这段代码 http://www.stroustrup.com/Programming/Solutions/Ch3/e3-6.cpp但我似乎无法修改它以使其使用字符串值(我收到错误“ fatal error LNK1120:1 个 Unresolved external ”,我希望了解如何这样做。

感谢任何帮助。

ps:这是链接中内容的修改代码(这是我回答问题的蹩脚尝试)。我知道有更简单的方法可以做到这一点,但我还没有,它在下一章( vector )中:

#include "D:\Mes Documents\Visual Studio 2010\std_lib_facilities.h"

int main()
{
string name1 = " ";
string name2 = " ";
string name3 = " ";

cout << "Please enter three names seperated by spaces: " << endl;
cin >> name1 >> name2 >> name3;
if (!cin) error("Something went wrong with the read");

string smallest = " ";
string middle = " ";
string biggest = " ";

if (name1<=name2 && name1<=name3)
{
smallest = name1;
if (name2<=name3)
{
middle = name2;
biggest = name3;
}
else
{
middle = name3;
biggest = name2;
}
}
else if (name2<=name1 && name2<=name3)
{
smallest = name2;
if (name1<=name3)
{
middle = name1;
biggest = name3;
}
else
{
middle = name3;
biggest = name1;
}
}
else
{
smallest = name3;
if (name1<=name2)
{
middle = name1;
biggest = name2;
}
else
{
middle = name2;
biggest =name1;
}
}

cout << "The names in order are: " << smallest << " " << middle << " " << biggest << endl;

system("pause");
return 0;
}

最佳答案

以这种方式解决了 #6 - 与任务要求的有点不同。稍后将更正并在此处发布 3.7 的解决方案。

#include "../../std_lib_facilities.h"
int main()
{
cout << "Enter three integers:\n";
int a = 0;
int b = 0;
int c = 0;
cin >> a >> b >> c;
if (a == b)
{
if (b == c)
{
cout << '\n' << a << " = " << b << " = " << c;
}
else if (a > c)
{
cout << '\n' << a << " = " << b << " > " << c;
}
else if (a < c)
{
cout << '\n' << c << " > " << a << " = " << b;
}
}
else if (a == c)
{
if (a > b)
{
cout << '\n' << a << " = " << c << " > " << b;
}
else if (a < b)
{
cout << '\n' << b << " > " << a << " = " << c;
}
}
else if (b == c)
{
if (b > a)
{
cout << '\n' << b << " = " << c << " > " << a;
}
else if (b < a)
{
cout << '\n' << a << " > " << b << " = " << c;
}
}
else if (a > b)
{
if (a > c)
{
if (b > c)
{
cout << '\n' << a << " > " << b << " > " << c;
}
else if (c > b)
{
cout << '\n' << a << " > " << c << " > " << b;
}
}
else if (a < c)
{
cout << '\n' << c << " > " << a << " > " << b;
}
}
else if (b > a)
{
if (b > c)
{
if (a > c)
{
cout << '\n' << b << " > " << a << " > " << c;
}
else if (c > a)
{
cout << '\n' << b << " > " << c << " > " << a;
}
}
else if (b < c)
{
cout << '\n' << c << " > " << b << " > " << a;
}
}
}

关于c++ - 按顺序显示字符串 - 练习题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5642064/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com