C语言九九乘法表

该博客主要介绍了如何编写一个C语言程序来输出九九乘法表的前n行,其中n为用户输入的正整数。示例代码中展示了如何使用嵌套循环来生成乘法表,并遵循了特定的输出格式要求。

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

九九乘法表

Description

      九九乘法表是数学学习的基础,今天我们就来看看乘法表的相关问题。《九九乘法歌诀》,又常称为“小九九”,如下图所示。你的任务是写一个程序,对于给定的一个正整数 n ,输出“九九乘法表”的前 n 行。例如,输入 n 为 9,你的程序的输出将为下图: 

Input

输入包含多组测试数据,以 EOF 结束。每组测试数据只包含一个正整数 n (0 < n < 10)。

Output

对于每组测试数据,输出上图所示“九九乘法表”的前 n 行。

Sample

Input 

2
3

Output 

1*1=1
1*2=2 2*2=4
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9

Hint

必须使用for循环,如果你的代码中出现例如

if(n == 1) printf(“1*1=1\\n”);

if(n == 2) printf(“1*1=1\\n1*2=2 2*2=4\\n”);

或其类似语句,本题不得分。

 

#include<stdio.h>
int main()
{
	int i, j, k, n;
	while (scanf("%d", &n) != EOF)
	{
		for (i = 1; i <= n; i++)乘法表
		{
			for (j = 1; j <= i; j++)
			{
				printf("%d*%d=%d ", j, i, j * i);
			}
			printf("\n");
		}
	}
	return 0;
}

以下是通过 C 语言实现九九乘法表的几种常见形式: ### 方形九九乘法表 此方法会生成一个完整的方形表格,其中所有的 `i*j` 都会被打印出来。 ```c #include <stdio.h> 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` 才执打印操作。 ```c #include <stdio.h> int main() { int i, j; for (i = 1; i <= 9; i++) { for (j = 1; j <= i; j++) { printf("%d*%d=%2d ", j, i, j * i); } printf("\n"); } return 0; } ``` 在此版本中,外层循环控制数而内层则负责列的数量直到当号为止[^4]。 --- ### 右上三角形九九乘法表 与左下相反的是右上方区域填充数据的情形——即仅当 `i<=j` 成立时才进相应位置上的数值展示。 ```c #include <stdio.h> int main(){ int i,j,k; for(i=1;i<=9;i++){ for(k=i;k<9;k++)//先打出空格部分 putchar(' '); for(j=i;j>=1;j--){//再依次向左排列算式 printf("%d*%d=%-2d",j,i,i*j); } puts(""); //换 } return 0 ; } ``` 注意这里的逻辑稍复杂一些,在正式计算之还需要额外考虑如何调整格式使得整体呈现为直角梯形状[^4]. --- ### 对称型九九乘法表 如果希望制作更加美观且具有镜像效果的形式,则可以采用下面这种方法: ```c #include<stdio.h> void printSpace(int n){ while(n--)putchar(' '); } int main(){ int row,col,maxWidth=8*(9/2)+1; for(row=1;row<=9;++row){ /* Print leading spaces */ maxWidth>=(row<=5)?maxWidth-=7:maxWidth+=7; printSpace((maxWidth-(row*7))/2); /* Print multiplication table entries */ for(col=1;(col<=row&&row<=5)||(col<=10-row&&row>5);++col) printf("%dx%d=%2d ", col,row,(col)*row ); putchar('\n'); } return 0 ; } ``` 该方案不仅包含了基本运算还加入了动态空白字符数量调节机制以达成最终视觉平衡感良好的布局设计[^4]. --- ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值