标签:
编写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
标签: