欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-06-24 15:43:08
...

无论是学习哪一门编程语言,九九乘法表都是逃不开的循环示例,那如果只用一个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循环的工作顺序

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循环
}

运行结果:
一个for循环打印九九乘法表

相关标签: for