这些天我正在学习c ++编程,因此我给自己写了一本书来学习它。我已经完成了Flow控制章节,它描述了if else循环的使用等。 我坚持这个特殊的问题: -
Write a Program To print the following :-
@@@@@@@
@@@@@
@@@
@
如何使用c ++中的循环和if else语句来完成此任务。
我发现在每一行中都有两个更少的空间和一个空格。
我还为重复的@'编程,但我无法插入空格。这是我的@&#39的计划: -
#include <iostream>
using namespace std;
int main() {
int i,j,k;
for (i = 7; i > 0; i = i - 2) {
for (j = 1; j <= i; ++j) {
cout << "@" << " ";
}
cout << endl;
}
return 0;
}
答案 0 :(得分:1)
我的方法
#include <iostream>
static const int FIRST_ROW = 15;
int main()
{
for (int i = FIRST_ROW; i > 0; i -= 2)
{
for (int j = 0; j < (FIRST_ROW - i) / 2; ++j)
std::cout << " ";
for (int j = 0; j < i; ++j)
std::cout << "@";
std::cout << std::endl;
}
}
答案 1 :(得分:1)
你可以在开始和第一个循环(第二个循环之前)中插入一个没有任何内容的字符串变量:(作为字符串变量g)
cout << g;
在第二个周期之后, 第一个
g+=" ";
你会得到你的三角形。 :)
这里是代码:
#include <iostream>
using namespace std;
int main()
{
string g="";
for(int i=7; i>0; i-=2)
{
cout << g;
for(int j=1; j<=i; j++)
{
cout << "@";
}
cout << endl;
g+=" ";
}
cout << "Press a button to exit..." << endl;
cin.get();
return 0;
}
希望你能理解我的英语。 :)
答案 2 :(得分:1)
只是一个不同方法的例子:
#include <iostream>
#include <string>
using namespace std;
int main() {
string spaces = string();
string chars = string(7, '@');
while (chars.size() > 0) {
cout << spaces << chars << endl;
spaces += ' ';
chars.erase(max(chars.size(), 2u) - 2);
}
return 0;
}