使用两个 for 循环生成以下星号
Produce following asterisk using two for loops
我需要使用两个 for 循环生成以下模式。
一个
AA
aaa
啊啊啊
啊啊啊
aaaaaa
aaaaaaa
我试过这个:
#include <iostream>
using namespace std;
int main()
{
int a;
a = 7;
for (int i = 1;i <= a;i++) {
cout << "" << endl;
for (int i = 1;i <= a;i++) {
cout << "*";
}
}
}
但是结果是7行7个字符:(
对于初学者来说,这个任务只需要一个循环就可以完成。例如
#include <iostream>
#include <iomanip>
int main()
{
while ( true )
{
const char c = '*';
std::cout << "Enter a non-negative number (0 - exit): ";
unsigned int n;
if ( not ( std::cin >> n ) or ( n == 0 ) ) break;
std::cout << '\n';
for ( unsigned int i = 0; i < n; i++ )
{
std::cout << std::setw( i + 2 ) << std::setfill( c ) << '\n';
}
std::cout << '\n';
}
return 0;
}
程序输出可能看起来像
Enter a non-negative number (0 - exit): 7
*
**
***
****
*****
******
*******
Enter a non-negative number (0 - exit): 6
*
**
***
****
*****
******
Enter a non-negative number (0 - exit): 5
*
**
***
****
*****
Enter a non-negative number (0 - exit): 4
*
**
***
****
Enter a non-negative number (0 - exit): 3
*
**
***
Enter a non-negative number (0 - exit): 2
*
**
Enter a non-negative number (0 - exit): 1
*
Enter a non-negative number (0 - exit): 0
至于你的代码,那么内循环正好输出 7 个字符 '*'
for (int i = 1;i <= a;i++) {
cout << "*";
}
所以你所做的就是你得到的。
你可以用下面的方式编写内循环
for (int j = 0;j < i; j++) {
cout << "*";
}
我需要使用两个 for 循环生成以下模式。
一个
AA
aaa
啊啊啊
啊啊啊
aaaaaa
aaaaaaa
我试过这个:
#include <iostream>
using namespace std;
int main()
{
int a;
a = 7;
for (int i = 1;i <= a;i++) {
cout << "" << endl;
for (int i = 1;i <= a;i++) {
cout << "*";
}
}
}
但是结果是7行7个字符:(
对于初学者来说,这个任务只需要一个循环就可以完成。例如
#include <iostream>
#include <iomanip>
int main()
{
while ( true )
{
const char c = '*';
std::cout << "Enter a non-negative number (0 - exit): ";
unsigned int n;
if ( not ( std::cin >> n ) or ( n == 0 ) ) break;
std::cout << '\n';
for ( unsigned int i = 0; i < n; i++ )
{
std::cout << std::setw( i + 2 ) << std::setfill( c ) << '\n';
}
std::cout << '\n';
}
return 0;
}
程序输出可能看起来像
Enter a non-negative number (0 - exit): 7
*
**
***
****
*****
******
*******
Enter a non-negative number (0 - exit): 6
*
**
***
****
*****
******
Enter a non-negative number (0 - exit): 5
*
**
***
****
*****
Enter a non-negative number (0 - exit): 4
*
**
***
****
Enter a non-negative number (0 - exit): 3
*
**
***
Enter a non-negative number (0 - exit): 2
*
**
Enter a non-negative number (0 - exit): 1
*
Enter a non-negative number (0 - exit): 0
至于你的代码,那么内循环正好输出 7 个字符 '*'
for (int i = 1;i <= a;i++) {
cout << "*";
}
所以你所做的就是你得到的。
你可以用下面的方式编写内循环
for (int j = 0;j < i; j++) {
cout << "*";
}