如何使下列代码输出为右上三角

img

img


使用的是2010版本
目的是输出乘法表,但需要右对齐
如题,如何解决?

在每行式子输出前的增加输出空白间距,以输出不断递减数量的制表符来实现即可。

修改如下:

#include <iostream>
#include <iomanip>

using namespace std;

int main(void){
    
    for(int i=1;i<=9;i++){
        
        for(int k=9;k>i;k--){
            cout<<"\t";
        }
        
        for(int j=1;j<=i;j++){
            cout<<i<<"*"<<j<<"="<<left<<setw(4)<<i*j;
        }
        
        cout<<endl;
    }
} 

img

i循环中,先输出 9-i 个单位的空格不换行,再进入j循环。图中1个单位的空格大概是8个空格,输出后可以右对齐。