九九乘法表c语言四种,C语言实现九九乘法表(四种情况)

本文介绍了如何使用C语言实现九九乘法表的四种不同形态:左上、右上、左下、右下。通过嵌套循环和条件判断,分别输出这四种乘法表,并通过switch-case语句让用户选择输出哪种形态的乘法表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C语言实现九九乘法表(四种情况)

本文所用思想是在9行9列方形乘法表的基础上“切割”得到左上、右上、左下、右下四种形态的九九乘法表,最后使用switch-case语句对四种形态的九九乘法表进行整理以完善程序。

首先,我们嵌套两个for循环语句得到一个方形的九九乘法表。

#include

int main()

{

int i,j;

for(i=1;i<=9;i++)

{

for(j=1;j<=9;j++)

{

printf("%d*%d=%2d ",i,j,i*j);

if(j==9)

{

printf("\n");

}

}

}

return 0;

}

得到的九九乘法表方形块如下:  下一步,我们对方形块进行“切割”,这里我们以左下乘法表为示例。  由图我们可以添加两条约束: 1.左下乘法表打印斜边的边界条件为i等于j(本文打印顺序为i×j),即当i>=j时,乘法式显示,当i

#include

int main()

{

int i,j;

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");

}

}

}

}

return 0;

}

同理,我们可以得到右上乘法表。 但是当我们想要切割左上和右下乘法表时,可以发现缺少了部分乘法公式。 为解决这个问题,我们可以换一张初始乘法表。  改变换行条件为j==1时,即可仿照前两个乘法表的方法获取左上和右下乘法表。

在此基础上,我们可以实现对于四种情况乘法表的选择输出。自然地,我们想到了switch-case语句。

目标: 1.实现选择输出不同情况的乘法表; 2.一次输出可以选择继续输出或结束运行;

实现如下:

#include

int main()

{

int i,j,a,flag=1;

while(flag)

{

printf("please input the number:\ntop_left-->1\ntop_right-->2\nbottom_left-->3\nbottom_right-->4\nexit-->5\n");

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:

flag=0;

break;

default:

printf("please control the input value between 1 and 5!!!\n");

}

}

return 0;

}

若有错误,欢迎指正!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值