C语言写九九乘法表(五种方法)

当我们学习编程语言时,通常需要掌握一些基本的语法和功能。在C语言中,输出九九乘法表是一个很好的练习,因为它既简单又有趣。本文将介绍如何用C语言编写代码来输出九九乘法表。

在开始之前,请确保您已经安装了C语言的开发环境,比如VS2019。

首先,我们需要明确九九乘法表的结构。九九乘法表是一个9行9列的方阵,每个元素都是两个数的乘积。我们可以使用嵌套循环来实现这个功能,本文将介绍五种形式输出九九乘法表。

方法一:左上三角形(top_left)

主体部分代码:

 for (i = 1; i <= 9; i++)
            {
                for (j = 1; j <= 9; j++)
                {
                    if ((i + j) <= 10)
                    {
                        printf("%d*%d=%2d ", i, j, i * j);
                        if (j == 9)
                        {
                            printf("n");
                        }
                    }
                    else
                    {
                        printf("       ");
                        if (j == 9)
                        {
                            printf("n");
                        }
                    }
                }
            }
            break;

输出为:

 

方法二:右上三角形(top_right)

主体部分代码

 for (i = 1; i <= 9; i++)
            {
                for (j = 1; j <= 9; j++)
                {
                    if (j >= i)
                    {
                        printf("%d*%d=%2d ", i, j, i * j);
                        if (j == 9)
                        {
                            printf("n");
                        }
                    }
                    else
                    {
                        printf("       ");
                    }
                }
            }
            break;

输出为:

 

方法三:左下三角形(bottom_left)

主体部分代码

  for (i = 1; i <= 9; i++)
            {
                for (j = 1; j <= 9; j++)
                {
                    if (i >= j)
                    {
                        printf("%d*%d=%2d ", i, j, i * j);
                        if (j == 9)
                        {
                            printf("n");
                        }
                    }
                    else
                    {
                        printf("       ");
                        if (j == 9)
                        {
                            printf("n");
                        }
                    }
                }
            }
            break;

输出为:

 

方法四:右下三角形(bottom_right)

主体部分代码

 for (i = 1; i <= 9; i++)
            {
                for (j = 1; j <= 9; j++)
                {
                    if (i + j >= 10)
                    {
                        printf("%d*%d=%2d ", i, j, i * j);
                        if (j == 9)
                        {
                            printf("n");
                        }
                    }
                    else
                    {
                        printf("       ");
                    }
                }
            }
            break;

输出为:

 

方法五:等腰三角形(isosceles triangle)

主体部分代码

 for (i = 9; i >= 1; i--) {
                for (k = 0; k<= (8 - i) * 4; k++) {
                    printf(" ");
                }
                for (j = 1; j <= i; j++)
                    printf("%d*%d=%2d  ", i, j, i * j);
                printf("nn");
            }
            break;

输出为:

 我们可一将这五种情况用一个switch语句链接起来具体完整代码如下:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include <stdlib.h>
int main()
{
    int i,j,k,a,flag = 1;
    while (flag)
    {
        printf("please input the number:n1--top_leftn2--top_rightn3--bottom_leftn4--bottom_rightn5--isosceles trianglen6--exitn");
        scanf("%d", &a);
        getchar();
        switch (a)
        {
        case 1://左上三角;
            for (i = 1; i <= 9; i++)
            {
                for (j = 1; j <= 9; j++)
                {
                    if ((i + j) <= 10)
                    {
                        printf("%d*%d=%2d ", i, j, i * j);
                        if (j == 9)
                        {
                            printf("n");
                        }
                    }
                    else
                    {
                        printf("       ");
                        if (j == 9)
                        {
                            printf("n");
                        }
                    }
                }
            }
            break;
        case 2://右上三角;
            for (i = 1; i <= 9; i++)
            {
                for (j = 1; j <= 9; j++)
                {
                    if (j >= i)
                    {
                        printf("%d*%d=%2d ", i, j, i * j);
                        if (j == 9)
                        {
                            printf("n");
                        }
                    }
                    else
                    {
                        printf("       ");
                    }
                }
            }
            break;
        case 3://左下三角;
            for (i = 1; i <= 9; i++)
            {
                for (j = 1; j <= 9; j++)
                {
                    if (i >= j)
                    {
                        printf("%d*%d=%2d ", i, j, i * j);
                        if (j == 9)
                        {
                            printf("n");
                        }
                    }
                    else
                    {
                        printf("       ");
                        if (j == 9)
                        {
                            printf("n");
                        }
                    }
                }
            }
            break;
        case 4://右下三角;
            for (i = 1; i <= 9; i++)
            {
                for (j = 1; j <= 9; j++)
                {
                    if (i + j >= 10)
                    {
                        printf("%d*%d=%2d ", i, j, i * j);
                        if (j == 9)
                        {
                            printf("n");
                        }
                    }
                    else
                    {
                        printf("       ");
                    }
                }
            }
            break;
        case 5://等腰三角
            for (i = 9; i >= 1; i--) {
                for (k = 0; k<= (8 - i) * 4; k++) {
                    printf(" ");
                }
                for (j = 1; j <= i; j++)
                    printf("%d*%d=%2d  ", i, j, i * j);
                printf("nn");
            }
            break;
        case 6:
            flag = 0;
            break;
        default:
            printf("please control the input value between 1 and 6!!!n");
        }
    }

    system("pause");    // 防止运行后自动退出,需头文件stdlib.h
    return 0;
}