我想要做的是输入一些循环,然后所有输入的单词将反向显示。我尝试反向显示数字,它的工作原理。但是,我不知道代码中要改变什么。我在c ++方面不擅长,所以我练习。谢谢你帮我=)
#include <iostream>
#include <string>
using namespace std;
int main()
{
int x, y;
string a[y];
cout << "Enter number: ";
cin >> x;
x=x-1;
for (y=0; y<=x; y++)
{
cout << y+1 << ". ";
cin >> a[y];
}
for (y=x; y>=0; y--)
{
cout << a[y] << endl;
}
return 0;
}
答案 0 :(得分:1)
您的ptogram无效。例如,您要声明数组
string a[y];
而变量y未初始化
int x, y;
C ++不允许定义可变长度数组。
因此,使用标准容器std::vector
该程序可以采用以下方式
#include <iostream>
#include <vector>
#include <string>
int main()
{
std::cout << "Enter number: ";
size_t n = 0;
std::cin >> n;
std::vector<std::string> v;
v.reserve( n );
for ( size_t i = 0; i < n; i++ )
{
std::cout << i + 1 << ". ";
std::string s;
std::cin >> s;
v.push_back( s );
}
for ( size_t i = n; i != 0; i-- )
{
std::cout << v[i-1] << std::endl;
}
return 0;
}
例如,如果输入看起来像
4
Welcome
to
Stackoverflow
kempoy211
然后输出
kempoy211
Stackoverflow
to
Welcome
答案 1 :(得分:0)
您可以在C ++中使用来自算法库的std :: reverse。有了它,你不需要写这些庞大的循环
EDITED: -
如果您只想要反向遍历并在下面打印您的字符串,则为伪代码: -
for ( each string str in array )
{
for ( int index = str.length()-1; index >= 0; index -- )
cout << str[index];
}
cout <<endl;
}
答案 2 :(得分:0)
#include <iostream>
#include <string>
using namespace std;
int main()
{
int x, y;
cout << "Enter number: ";
cin >> x;
string a[x]; //this should be placed after cin as x will then be initialized
for (y=0; y<x; y++)
{
cout << y+1 << ". ";
cin >> a[y];
}
for (y=x-1; y>=0; y--) // x-1 because array index starts from 0 to x-1 and not 0 to x
{
cout << a[y] << endl;
}
return 0;
}
输出:
Enter Number: 5
1. one
2. two
3. three
4. four
5. five
five
four
three
two
one