【C语言】九九乘法口诀表


九九乘法口诀表
上图是我们 小学二年级就学过的九九乘法口诀表,现在我们用C语言实现输出它。

分析问题

  1. 我们可以发现这个口诀表是由两个规律递增的数实现的,由此我们想到用循环解决这个问题。
  2. 我们定义两个变量i和j,i代表行数,j代表列数。很明显口诀表每行输出有条件j<=i
  3. 我们从简单行观察数字变化规律,1*2=2,2*2=4。很明显前面的数代表列数j,后面的数代表行数i。像这种同时有行又有列性质的问题,一般来说都是用一层嵌套循环实现。

最终解法:两层循环进行控制,外层循环控制打印多少行,内层循环控制每行打印多少个表达式以及表达式内容。
如果你已经有清晰思路了,可以自己先码一下,然后再看解决问题部分的代码和进阶挑战。

解决问题

直接上代码:

#include <stdio.h>

int main()
{
	//控制行数
	for (int i = 1; i <= 9; i++)
	{
		//打印每一行内容,每行有i个表达式
		for (int j = 1; j <= i; j++)
		{
			printf("%d*%d=%d ", j,i, i * j);//不要忘记添加一个空格美化输出
		}
		printf("\n");//实现口诀表换行操作
	}
	
	return 0;
}

代码输出实例

进阶挑战

我们可以发现上面代码输出的口诀表有些小瑕疵:表格并没有完全对齐。我们可以通过格式化打印来解决对齐问题。

//只需要把上面代码中的打印修改即可
printf("%d*%d=%-2d ", j, i, i * j);

%d是直接打印一个整数,%2d这个格式化代表此整数至少占两格,%-2d代表此整数占两格左对齐,而 %2d显然就是右对齐。

代码输出实例
如果我们想实现的是n*n乘法表呢?
相信通过上面的学习你已经可以解决这个进阶挑战了。
我们只需要把行数i的循环条件改为i<=n就行了,但是表格对齐上还需要调试更改。

#include <stdio.h>

int main()
{
	int n = 0;
	scanf("%d", &n);
	
	for (int i = 1; i <= n; i++)
	{
		for (int j = 1; j <= i; j++)
		{
			printf("%2d*%-2d=%-3d ", j, i, i * j);//%2d和%-2d尽力美化输出
		}
		printf("\n");
	}
	
	return 0;
}

代码输出实例


恭喜你又解决了一个问题!
码字不容易,欢迎关注、点赞、收藏、评论、转发。

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱code的清隆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值