21xrx.com
2024-11-05 17:28:28 Tuesday
登录
文章检索 我的文章 写文章
C++编程实现九九乘法表右三角输出
2023-07-09 07:45:23 深夜i     --     --
C++编程 九九乘法表 右三角输出

九九乘法表是初学编程的人都会接触到的一个经典案例,它可以帮助我们更好地理解循环和逻辑语句的运用。本文将介绍如何使用C++编程实现九九乘法表右三角输出。

首先,我们需要使用双重for循环来实现九九乘法表的输出,代码如下:


for (int i = 1; i <= 9; i++) {

  for (int j = 1; j <= i; j++) {

    cout << j << "*" << i << "=" << i * j << "\t";

  }

  cout << endl;

}

这段代码可以输出一个完整的九九乘法表,但是我们需要将它右对齐。为此,我们需要在输出每个元素之前先输出一定数量的空格。我们可以通过计算每个元素的字符数和最大字符数之间的差值来确定每个元素前的空格数量,代码如下:


const int MaxLen = 4; // 最大字符数,即每个元素的最大长度(包括空格)

for (int i = 1; i <= 9; i++) {

  for (int j = 1; j <= i; j++) {

    int len = to_string(i * j).length() + 2; // 计算当前元素的长度

    int space = MaxLen - len; // 计算需要补充的空格数量

    for (int k = 0; k < space; k++) // 输出空格

      cout << " ";

    

    cout << j << "*" << i << "=" << i * j << " "; // 输出当前元素

  }

  cout << endl;

}

这段代码中,我们使用了to_string函数来将整数转换成字符串,方便计算元素的长度。我们还使用了一个常量MaxLen来存储每个元素的最大长度,此处我们取了4作为最大长度,因为每个元素至少占用3个字符(如“1*1=1”),再加上一个空格。

最后,我们需要将每行乘法表向右移动一定的距离,这个距离可以通过在每行前面输出一定数量的空格来实现,代码如下:


const int MaxLen = 4; // 最大字符数,即每个元素的最大长度(包括空格)

for (int i = 1; i <= 9; i++) {

  int space = (9 - i) * MaxLen; // 计算需要输出的空格数量

  for (int k = 0; k < space; k++) // 输出空格

    cout << " ";

  

  for (int j = 1; j <= i; j++) {

    int len = to_string(i * j).length() + 2; // 计算当前元素的长度

    int space = MaxLen - len; // 计算需要补充的空格数量

    for (int k = 0; k < space; k++) // 输出空格

      cout << " ";

    

    cout << j << "*" << i << "=" << i * j << " "; // 输出当前元素

  }

  cout << endl;

}

在这段代码中,我们用空格的数量来调整每行的位置。首先,我们计算每行需要输出的空格数量,即九九乘法表的最大长度(9行)减去当前行的行数再乘上每个元素的最大长度。然后,在输出当前行的元素之前,我们先输出一定数量(空格数)的空格,使得每行都向右移动了一定的距离。

使用这段代码,我们就可以实现九九乘法表的右对齐输出,效果如下:


        1*1=1

      1*2=2  2*2=4

    1*3=3  2*3=6  3*3=9

  1*4=4  2*4=8  3*4=12 4*4=16

1*5=5  2*5=10 3*5=15 4*5=20 5*5=25

  1*6=6  2*6=12 3*6=18 4*6=24

    1*7=7  2*7=14 3*7=21

      1*8=8  2*8=16

        1*9=9

使用这种方式,我们可以进行更加灵活的输出排版,让信息更加清晰、易读。希望此方法能够对大家有所帮助。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复