21xrx.com
2025-07-08 14:17:06 Tuesday
文章检索 我的文章 写文章
C++程序实现九九乘法表矩形打印
2023-07-04 21:20:05 深夜i     13     0
C++ 九九乘法表 矩形 打印 程序实现

九九乘法表是小学数学教育中的必修知识,不仅让学生掌握了乘法的基本概念,还能够锻炼他们的计算能力和思维能力。但是,我们如何通过 C++ 程序来实现九九乘法表的矩形打印呢?

首先,我们需要知道九九乘法表的规律,即每一行的乘数范围是 1~9,乘积为乘数与行数的积,因此我们可以使用双重循环嵌套的方式一个一个输出每个位置的值。代码如下:

#include <iostream>
using namespace std;
int main()
{
  for(int i=1;i<=9;i++)
  {
    for(int j=1;j<=9;j++)
    {
      cout<<i<<"*"<<j<<"="<<i*j<<"\t";
    }
    cout<<endl;
  }
  return 0;
}

接下来,我们可以对输出进行美化处理,使得输出的形式更加符合要求。为了输出一个矩形,我们需要确定每一行的输出宽度,然后在每个位置上补齐空格使得所有行的输出宽度相等。

我们可以使用 stringstream 类型来实现这一目标,该类型可以像字符串流一样进行输入和输出操作。首先,我们可以将 i*j 转换为字符串类型,然后根据字符串的长度确定每个输出位置的宽度,然后在字符串前面补齐相应的空格即可。代码如下:

#include <iostream>
#include <sstream>
using namespace std;
int main()
{
  stringstream ss;
  for(int i=1;i<=9;i++)
  {
    for(int j=1;j<=9;j++)
    {
      ss<<i*j;
      string str = ss.str();//转为字符串
      if(str.length()==1)//如果是一位数,则在其前面补一个空格
      {
        str.insert(0," ");
      }
      cout<<i<<"*"<<j<<"="<<str<<"\t";
      ss.str("");//清空缓存区
    }
    cout<<endl;
  }
  return 0;
}

最后,我们需要在每个输出位置上加上边框,这样就可以形成矩形。我们可以在每行输出的前后分别加上一排边框,然后在每个输出位置的前后分别加上一个竖线。代码如下:

#include <iostream>
#include <sstream>
using namespace std;
int main()
{
  stringstream ss;
  for(int i=1;i<=9;i++)
  {
    for(int j=1;j<=9;j++)
    {
      ss<<i*j;
      string str = ss.str();//转为字符串
      if(str.length()==1)//如果是一位数,则在其前面补一个空格
      {
        str.insert(0," ");
      }
      cout<<"|"<<i<<"*"<<j<<"="<<str<<"|";//加上竖线和边框
      ss.str("");//清空缓存区
    }
    cout<<endl;
    if(i==1)//第一行
    {
      for(int k=0;k<81;k++)
      
        cout<<"-";//加上边框
      
      cout<<endl;
    }
    else if(i==9)//最后一行
    {
      for(int k=0;k<81;k++)
      
        cout<<"-";//加上边框
      
    }
    else//其他行
    {
      for(int k=0;k<81;k++)
      
        cout<<"-";//加上边框
      
      cout<<endl;
    }
  }
  return 0;
}

经过以上优化处理,我们就可以得到一张美观的九九乘法表矩形了。该程序不仅能够增加我们输出格式化的经验,同时也能够巩固我们的编程基础知识,帮助我们更好地理解循环语句和流类对象的使用方法。

  
  

评论区