我想尝试使用设置预宽来解决三角形的输出

P5725 【深基4.习8】求三角形

不知道是不是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


|