考研成长日记day6(1)

    技术2026-08-30  23

    如何用c++来输出数字矩阵之1变为01

    题目来源于洛谷 模仿例题,打印出不同方向的正方形,然后打印三角形矩阵。中间有个空行。 我们可以有两种思路,一种就是10以内的数字都在输出时用cout<<0,强制输出一个0,但是这种方式非常不灵活,输出结果需要根据数据的位数变化而变化,而且还是手动变化的那种,而且三位就不能用了。而使用控制字符,也就是iomanip里面的格式控制函数来写的话,就可以完美解决这个问题。 第一种方法就不演示了。 我们直接来看看第二种方法: 核心代码如下所示

    cout.setf(ios::right); cout.fill('0'); cout.width(2);

    第一行表示输出格式向右靠齐 第二行表示用0填充空白位 第三行表示设置宽度为2

    这样就可以完美设置空缺部分了

    输出三角形结合手动控制和格式控制函数即可实现

    #include<iostream> #include<iomanip> using namespace std; int main() { int t; cin>>t; int x=1; for(int i=0;i<t;i++) { for(int j=0;j<t;j++) { cout.setf(ios::right); cout.fill('0'); cout.width(2); cout<<x; x++; } cout<<endl; } cout<<endl;//输出矩阵 x=1; for(int i=0;i<t;i++) { for(int j=0;j<t-i-1;j++) { cout<<" "; } for(int k=0;k<i+1;k++) { cout.setf(ios::right); cout.fill('0'); cout.width(2); cout<<x; x++; } cout<<endl; }//输出三角形 }

    结果展示

    Processed: 0.013, SQL: 9