【发布时间】:2019-11-22 20:05:10
【问题描述】:
我需要打印这样的星形图案:
*****
** *
*** *
*****
我试过的代码是:
#include <iostream>
using namespace std;
int main()
{
int i,j,k;
for(i=1;i<5;i++){
for(j=1;j<5;j++){
if(i==1 || j==4 || i==4 )
// if(j==4 || i==4)
cout<<"*";
if(i>1 && i<4){
for(k=1;k<3;k++){
cout<<"";
}
}
else {
cout<<"";
}
}
cout<<endl;
}
return 0;
}
这是我得到的输出:
****
*
*
****
所以,您知道我在打印每行末尾的星号时遇到了问题。正如您在我上面提供的所需输出中看到的那样,在第 2 行和第 3 行中,我需要将它们打印出来。现在,正如我给出的代码一样,我尝试这样做,但不确定为什么它不起作用。所以,我需要你的帮助来实现这个输出。
许多其他问题都有类似的标题,但这是关于完全不同的星形图案。
P.S:顺便说一句,我想提一下,我已经学习 C++ 一年多了,但我仍然遇到循环问题。我已经理解了其他的东西,比如函数、if-else、结构、数组、基本的 oop 等,但是由于某种原因,循环给我带来了麻烦,所以我认为我应该做这些星形模式练习。如果你们对我如何改进循环中的逻辑(尤其是嵌套的逻辑)有任何建议,那么这对我很有帮助。谢谢。
【问题讨论】:
-
请注意,
cout << "";绝对没有任何作用。您的意思是cout << " ";(注意空格字符)吗? -
@scohe001 哦。是的你是对的。我的意思是使用空间
-
@Algirdas Preidžius 谢谢。但是,你有任何关于如何学习循环及其逻辑的资料吗?我的意思是每当我在谷歌上搜索时,每个页面都只显示它的语法。
-
std::cout << "*****\n ** *\n *** *\n *****\n";- 完成。 -
@AviadRozenhek 1) 坦率地说,这是基于意见的。我在我的职业生涯中使用过 C++ 和 C#,但我仍然更喜欢 C++。 Python 主要用于在我们的环境中构建脚本,而不是实际开发,即使在有时接触 Python 之后:我仍然更喜欢 C++。 2) “我强烈建议学习一门更简单、更现代和更有用的语言” C++ 有哪些不现代的地方?自 2011 年以来,该语言每 3 年添加一次功能,这有助于使该语言现代化。