乘法口诀表

Description
还记得以前小学时的九九乘法口诀吧。现在要求你编写程序打印出乘法口诀。 不过现在的乘法口诀表跟以前稍微有点区别,我告诉你一个数字n( 1 <= n <= 9),你要给我打出相应的nn乘法口诀表。

Input
输入小于10的正整数n

Output
输出nxn乘法口诀表。 每个乘法口诀表中的除最后一个乘式外,其它乘式占6列,不足6列的在后面补空格(printf("%d*%d=%-2d “…));最后一个乘式按实际数据输出,且最后无空格(printf(”%d*%d=%d\n"…))。同一行2个乘式之间有一个空格。

Sample Input
1
2
6
Sample Output
1*1=1

1 * 1=1
1 * 2=2 2 * 2=4

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 5 * 6=30 6 * 6=36

本题有许多易错点,一是如何运用题目中给出的 (printf("%d*%d=%-2d “…)) 和
(printf(”%d*%d=%d\n"…)) ;二是如何进行第i行到第i个是换行并且没有空格 ;三是按照题目给出的格式1 * 7=7, 2 * 7,14 ,3 * 7=21 ;可以看出前一个乘数由1递增,后一个乘数为i在第i行不变

#include <stdio.h>
int main()
{
    int i,j,n,k=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++)//一共n行,进行n组判断
	{
		k++;//这里的k用于j%k的判断,确保题目要求的最后一个数换行且无空格
        for(j=1;j<=i;j++)//第i行的i个数的判定输出
        {
		    if(j%k!=0) //这里如果写k%j!=0会出问题,因为k大,i每次从1开始递增,会不断换行,而如果是j%k,由于k>=j,只有第j个才会满足最后一个进行换行的判定条件
            printf("%d*%d=%-2d ",j,i,i*j);
            else printf("%d*%d=%d\n",j,i,i*j);
        }
    }
    return 0;
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值