我想要一个右对齐的数字模式,使用setw来给空格当setw小于打印数字的数量时,空格就会消失,或者它会产生任何随机图案。我的代码如下:
#include <iostream>
#include<iomanip>
using namespace std;
int main()
{
int space, n,i,j,k,l,m;
cin>>n;
for (k = n; k <=2*n-1; k++)
{
cout<<setw(k);
}
for(i=1;i<=n;i++){
for(j=1;j<=i;j++){
cout<<j;
}
cout<<endl;
}
return 0;
}
我得到的输出是(n=5(:
1
12
123
1234
12345
我想要的输出是(n=5(:
1
12
123
1234
12345
第一个for
循环不是必需的。
setw
设置下一个字段(setw
之后的字段(的字段长度。因此,如果下一个字段是空字符串,setw(x)
将只保留x
个字符的空间。此外,值x
应等于n - i
(如果要打印的字符数为1,则需要(5-1(,即4个空格(
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int n, i, j;
cin >> n;
for (i = 1; i <= n; i++) {
cout << setw(n - i) << "";
for (j = 1; j <= i; j++) {
cout << j;
}
cout << endl;
}
return 0;
}