不知道是不是ios那里出了问题……
建议
```cpp
#include<iomanip>
......
cout<<right<<setw(x)<<setfill('0')
^ 这里
```
by diamond_153 @ 2022-12-06 21:07:45
可能是这句出了问题
```cpp
if (i == 1 / 2 * cnt * (cnt + 1))
```
c++ 这里应该是从左往右算,`1/2`取整直接变成 0 了
by xiaoqian02 @ 2022-12-06 21:40:35
建议不要用 1/2,改成最后除以 2 应该能过
by xiaoqian02 @ 2022-12-06 21:41:49
等一下是循环里的 `1/2`
by xiaoqian02 @ 2022-12-06 21:42:22
乘上去等于说是
```cpp
for(int i=1;i<=0;i++)
```
当然就没输出了
by xiaoqian02 @ 2022-12-06 21:43:27
实际上应该两个都要改
by xiaoqian02 @ 2022-12-06 21:43:50
@[xiaoqian02](/user/232460)
谢谢谢谢就是这个问题
但现在又出现了个问题,就是我无法正确右对齐的三角形。。
```cpp
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
int n = 0,cnt=1;
cin >> n;
/*for (int i = 1;i<=n*n; i++) {
cout << setw(2) << setfill('0')<< i;
if (i % n == 0) {
cout << endl;
}
}*/
for (int i = 1; i <= (n*(n+1))/2; i++) {
cout << resetiosflags(ios::left)
<< setiosflags(ios::right) << setprecision(2 * n)//域宽为n,右对齐
<< setw(2) << setfill('0') << i;
if (i == (cnt * (cnt + 1))/2) {
cout << endl;
cnt++;
}
}
return 0;
}
```
或者说,我不知道怎么在这个情形下做到右对齐
by jackpudding @ 2022-12-06 22:19:57