我正在开发一个项目,该项目需要循环将模式输出到控制台。
我必须在代码中使用for循环。我已经到了某种程度,我只能将一半的图案显示在屏幕上,而其余的则不会出现在控制台中。
我的代码:
#include <iostream>
using namespace std;
int main()
{
int i, j;
for (i=5; i>=1; i--)
{
for (j=1; j != i; j++)
{
cout << "5";
cout << "#";
cout << endl;
}
}
return 0;
}
因此此代码输出:
####5
###5
##5
#5
5
但是我需要它来输出:
####5
###5#
##5##
#5###
5####
如何更改代码以显示输出?
我希望这是有道理的, 谢谢
答案 0 :(得分:0)
您的internal loop
是跟踪5
从右到 left
for (i=5; i >= 1; i--) {
for (j=1; j <= 5; j++) {
cout << (( i == j ) ? "5" : "#");
}
cout << endl;
}
去除花哨的东西
for (i=5; i >= 1; i--)
{
for (j=1; j <= 5; j++)
{
if( i == j )
cout << "5";
else
cout << "#";
}
cout << endl;
}
答案 1 :(得分:-1)
我们要明确一点:OP的代码完全错误,我无法理解它是如何工作并产生该输出的,所以我从头开始编写了它。
之前编辑:
我不明白您的代码是如何工作的,所以我从头开始重写了它。
#include <iostream>
void output_sharp(int cnt)
{
while (cnt != 0)
std::cout << "#";
}
int main(int argc, char *argv[])
{
for (int i = 0, j = 4; i != 5; ++i, --j) {
output_sharp(j - i);
std::cout << "5";
output_sharp(4 - j);
}
return 0;
}
答案 2 :(得分:-1)
这就是您要寻找的。 p>
#include <iostream>
using namespace std;
int main()
{
int i,j;
for (i=4; i>=0; i--)
{
for(int z=0; z<5;z++){
if(z==i){
cout <<"5";
}
else{
cout <<"#";
}
}
cout <<"\n";
}
return 0;
}
####5
###5#
##5##
#5###
5####
Chears:-)