一个for循环打印九九乘法表

无论是学习哪一门编程语言,九九乘法表都是逃不开的循环示例,那如果只用一个for循环怎么实现呢?
先来看常规的双重循环代码:

void multable()
{
	//使用双重循环,实现99乘法表
	int i, j;//定义i,j两个变量
	 // 口诀:外层循环控制行,内层循环控制列
	for (i = 1; i <= 9; i++)//外层循环,给i赋初始值,并且确定99乘法表,有9行
	{
		for (j = 1; j <= i; j++)//内层循环,给j赋初值,每一行有多少列由行确定,第一行有一列,第二行有两列,由此推出j<=i
		{
			printf("%ld*%ld=%2d\t", j, i, i*j);
		}
		printf("\n");
	}
}

运行:

int main() {
	multable();//双重循环
}

运行效果:
这里写图片描述
要想用一个for实现九九乘法表,我们先来看一下for循环的工作顺序

for(表达式1;表达式2;表达式3)
循环体语句

执行过程:
1.求解"表达式1"的值
2.求解"表达式2"的值,并判断,若满足则转至步骤3,否则转步骤5
3.执行一次循环体语句
4.求解表达式3,转至步骤2,构成循环
5.结束循环,执行for循环之后的语句.
注意:
1.两个分号不能少;
2.表达式是任选项,可以省略

思路:
1.把内层循环中的列与外层循环写到一起,改成一个for循环
1.1内层循环中的表达式1与外层循环的表达式1写到一起(即同时给i,j赋初值);
1.2内层的循环次数j由外层循环次数i决定,因此,内层的循环条件判断放到外层的循环体内
1.3由于只有一个for循环,所以内层循环变量j和外层循环i变量需要写到循环体中

void multable2() {
	int i, j;//定义i,j
	for (i = 1, j = 1; i <= 9; ) {//i控制行,j控制列,省略表达式3;
		printf("%d*%d=%d\t",j,i,j*i);//先打印
		j++;
		if (j>i) {//当j>i的时候,说明改换行了,i++,并且j也应该重置
			printf("\n");
			i++;
			j = 1;
		}
	}
}

运行:

int main() {
	multable();
	multable2();	//一个for循环
}

运行结果:
这里写图片描述

  • 24
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值