有这样的程序
#include <bits/stdc++.h>
using std::cout;
using std::endl;
using std::string;
int main()
{
const int n = 15;
for(int i=0;i<n;i++)
cout << string(n/2-1-i, ' ') << string(i*2+1, 42) << endl;
return 0;
}
但在此过程中,它会引发异常。有什么方法可以摆脱它或在另一个程序上编写程序。
*
***
*****
*******
*********
***********
*************
terminate called after throwing an instance of 'std::length_error'
what(): basic_string::_S_create
答案 0 :(得分:2)
n/2-1-i
n=15
和i >= 7
, n/2 == 7
将为负数。因此,您的计划需要重新设计。
修改强>
只需更改一行:
cout << string(n-i-1, ' ') << string(i*2+1, 42) << endl;