美文网首页
C语言输出乘法口诀

C语言输出乘法口诀

作者: 梅西爱骑车 | 来源:发表于2023-11-04 12:34 被阅读0次

娃留得作业,使用C语言各种格式输出乘法口诀,一时间难倒了25年没用C语言做题的她爹。

输出格式五花八门,还有正三角形。输出效果如图: 正三角输出的乘法口诀

完整代码

代码如下:

#include<stdio.h>
 
int main()
{
   // 第一重循环,i也就是乘法口诀输出的第2个数字。
   for(int i = 1;i <= 9; i++)
   {
       //第二重循环,该循环负责为每行首输出空格来排版成正三角形。
       for (int j = 0; j <36 - 4*i; j++)
        {
            printf(" ");
        }
    
      //第二重循环,该循环负责输出结果,j也就是乘法口诀输出的第1个数字,i\*j是相乘后的结果。   
      for(int j = 1;j <= i;j++)
      {
      printf(" %d*%d=%2d ",j,i,i*j); // 注意输出的前后各有一个空格,保证各个口诀的字符居中且有间距。
      }
      printf("\n");
   }
    
    return 0;
}

实现思路

其中,printf(" %d*%d=%2d "的%2应该是占位2个,1就是空格+“ 1”,前后面各加了1个空格,这样保证每个值都是8个长度方便对齐,如: 1*1= 1 、 2*9=18 。
我们需要计算每行的中间位置,然后前面补充空格就能输出正三角。最长那行是9个值,一共8*9=72个字符,中间应该是72/2=36字符的位置;第一行因只有“ 1*1=01 ” 一个输出,因每个乘法占了8个长度,第一行的中间就是36-(8/2)*1,第二行是36-(8/2)*2,所以使用双重循环的内循环核心逻辑——“输出空格进行排版”的代码如下:

       for (int j = 0; j <36 - 4*i; j++)
        {
            printf(" ");
        }

输出常见样式

如果要输出常见(无居中要求)的乘法口诀就更简单了,只要去掉打印空格的循环即可,输出效果如下: 打印常见乘法口诀
#include<stdio.h>
 
int main()
{
   
   for(int i = 1;i <= 9; i++)
   {
       //去掉此循环即可。
       for (int j = 0; j <36 - 4*i; j++)
        {
            //printf(" ");
        }
    
        
      for(int j = 1;j <= i;j++)
      {
      printf(" %d*%d=%2d ",j,i,i*j); 
      }
      printf("\n");
   }
    
    return 0;
}

相关文章

网友评论

      本文标题:C语言输出乘法口诀

      本文链接:https://www.haomeiwen.com/subject/bceaidtx.html