我需要使用两个for循环产生以下模式。
aaaaaaaaaaaaaaa
我已经尝试过:
#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个字符:(
对于初学者,该任务只能使用一个循环来完成。例如
#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 << "*";
}