码迷,mamicode.com
首页 > 编程语言 > 详细

C语言::输出九九乘法口诀表

时间:2016-07-22 00:02:31      阅读:924      评论:0      收藏:0      [点我收藏+]

标签:

题目要求

编写C语言程序.输出九九乘法口诀表.(如下所示)

1x1=1

1x2=2  2x2=4

1x3=3  2x3=6  3x3=9

.....

1x9=9  2x9=18 3x9=27 4x9=...

算法分析

首先容我先装一逼,依老夫多年的编程经验,本题一定需要循环!

如果你目前还不知道为什么用循环,也没有关系,只要记住就好,日后经验丰富后,必然也能像我这样!

话入正题,我是怎么看出来这道题用循环的?

首先我们得考虑这份乘法口诀表具有什么特征,稍加分析,我们发现...

乘法口诀表特征如下:

特征一、一共需要输出9行.

特征二、第1行有1列;第2行有2列;第3行有3列...

因此,不难思考,我们得到如下结论:

本题我们需要两重循环,并且这两个循环属于嵌套关系!

当然我们不排除有脑子反应比较慢的童鞋,请耐心看灰色文字部分,听我细细道来.

(已经理解上述结论的童鞋,请跳过灰色文字部分.)

我们首先来思考,如何编写程序去实现这乘法口诀表的这两个特征?

根据上述特征我们发现在乘法口诀中行的实现,非常简单,我们需要输出9行,那么我们只需循环9次,就可以完成.

而列的实现与行有密切的关系,结合特征二来看,在乘法口诀表中有多少行,就输出多少列.

转换为C语言程序的思想就是:行执行了几次循环,列也就执行几次循环.

上面分析了这么一大堆废话,总结起来如下:

算法总结

1.本题需要使用双重循环,外层循环输出行,内层循环输出列.

2.行需要循环9次.

3.列循环的次数等于行循环的次数.

算法转程序

算法搞清楚后,我们开始写程序...

因为需要双重循环,所有我们首先定义两个循环变量i和j,并初始化为0.

既然要执行循环,就一定要明确循环变量初始化、循环条件、和循环后的调整.

在外层循环中,第一行输出1x1=1,因此应先将循环变量i初始化为1.

根据题目要求,输出九九乘法口诀表,所以循环条件是当循环变量i<=9时,进入循环.

第一行输出1(j)x1(i)=1,第二行输出1(j)x2(i)=2,每次循环i都增加了1,所以循环调整部分为i++;

在内层循环中,也因为第一行输出1x1=1,因此循环变量j也应初始化为1.

根据算法总结,循环条件当循环变量j小于等于循环变量i时,进入循环体内部.

每次循环后j++.

核心代码如下:

//外层循环变量,控制行
int i = 0;
//内层循环变量,控制列 
int j = 0; 
for(i=1;i>=9;i++){
	for(j=1;j>=i;j++){
		printf("%dx%d=%d\t",j,i,i*j);
	}
	//每行输出完后换行 
	printf("\n");	
}

完整版代码

#include<stdio.h>
int main(){
	//外层循环变量,控制行
	int i = 0;
	//内层循环变量,控制列 
	int j = 0; 
	for(i=1;i>=9;i++){
		for(j=1;j>=i;j++){
			printf("%dx%d=%d\t",j,i,i*j);
		}
		//每行输出完后换行 
		printf("\n");	
	}
}

本文由高小调博客原创,如欲装载,请注明出处!

原文链接地址:http://gaoxiaodiao.com/p/11.html

C语言::输出九九乘法口诀表

标签:

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
站长高小调
加入时间:2016-07-21
  关注此人  发短消息
文章分类
站长高小调”关注的人------(0
站长高小调”的粉丝们------(0
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!