我想要一個右對齊的數字模式,使用setw來給出空格,或者當 setw 小于 no 時空格消失。印刷數字或它產生任何隨機模式。我的代碼如下:
#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
uj5u.com熱心網友回復:
第一個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;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/347910.html
下一篇:錯誤的回圈結果
