【发布时间】:2020-02-20 19:24:18
【问题描述】:
对于作业,我需要编写一个程序,该程序接受用户输入的字符串并使用给定字符串的字母输出菱形图案。 (不使用数组)。
例如:
> Enter a word: hello
h
e e
l l
l l
o o
l l
l l
e e
h
我一直无法理解如何为此类事情操作嵌套的 for 循环,因此我尝试获取类似问题的源代码并对其进行修改。
#include <iostream>
using namespace std;
int main()
{
int n,k,c,space=1;
cout<<"Enter the number of Rows..."<<endl;
cin>>n;
space=n-1;
for(k=1;k<=n;k++)
{
for(c=1;c<=space;c++)
{
cout<<" ";
}
space--;
for(c=1;c<=2*k-1;c++)
{
cout<<"*";
}
cout<<endl;
}
space=1;
for(k=1;k<=n;k++)
{
for(c=1;c<=space;c++)
{
cout<<" ";
}
space++;
for(c=1;c<=2*(n-k)-1;c++)
{
cout<<"*";
}
cout<<endl;
}
return 0;
}
这会打印一个由星号组成的三角形。最初我以为我可以稍微编辑一下变量并使用源代码为我处理间距,但显然因为我真的不明白变量是如何影响问题的,所以我还没有走多远.如果有人能向我解释我应该如何解决这个问题,我将不胜感激。
【问题讨论】:
-
您可以通过使用调试器了解很多关于您的程序的信息。您可以让调试器执行每一行,一次一个,并显示变量中的值。一个非常方便的了解和使用工具。
-
我知道我们正在查看您的家庭作业。您的第一个解决方案尝试是搜索执行请求的现有代码,但没有找到任何代码。现在,第二个解决方案尝试要求 StackOverflow 将一些模糊相似的代码转换为回答您作业的代码。我建议第三次尝试编写自己的代码,基于您在课堂上学到的知识、教程并拥有自己的工作。
-
当您遇到困难时,请看这里,这是最有可能寻求帮助的方法:meta.stackoverflow.com/questions/334822/… 当您处于该阶段时,请确保显示所需输出的文本信息在这里直接作为文本,而不是作为文本图片的链接。
-
@Yunnosch 我并不是专门寻找复制粘贴的情况。如果我了解如何解决问题,我非常愿意(实际上我更喜欢)编写自己的代码。问题是我的教授是一个非常不干涉“自己弄清楚”的教练,我不是这样学习的。因此,让我处于这种我不知道从哪里开始的情况。
标签: c++ string nested-loops