九九乘法表的输出(for循环总结)

1.左下三角型

此为最简单的一种,只需控制好多重循环与输出空格数即可

#include<stdio.h>
int main()
{
	int i,j,sum;
	for(i=1;i<=9;i++)
	{
		for(j=1;j<=i;j++)
		{
			printf("%d*%2d=%2d ",i,j,sum=i*j); 
		}
		printf("
");
	
	}
	return 0;
 }

2.右上三角形

观察输出样式我们可知:

  1. i,j所控制的乘数,均为从小到大的排列顺序,因此我们均应用i++,j++的形式
  2. 观察第二列起的空格我们发现,原处的整式均被空格代替于是我们可以得知,在此处应用if语句对j内循环做一个判断(!此处我犯了一个错误,认为可以在for循环中将条件判断改为for(j=1;(j>=i)&&(j<=9);j++),但如果以此判断,循环在第二遍时就会停止。
#include<stdio.h>
int main()
{
	int i,j,sum,z;
	for(i=1;i<=9;i++)
	{
		
		for(j=1;j<=9;j++)
		{
			if(j<i)
		{
			printf("        ");
	      
		}
			else
			printf("%d*%2d=%2d ",i,j,sum=i*j); 
			
		}
		printf("
");
	
	}
	return 0;
 }

3. 输出左上三角形

此处只需控制好i,j之间的关系既可

#include<stdio.h>
int main()
{
	int i,j,sum,z;
	for(i=9;i>0;i--)
	{
		
		for(j=1;j<=i;j++)
		{
		
		  printf("%d*%2d=%2d ",i,j,sum=i*j); 
			
		}
		printf("
");
	
	}
	return 0;
 }

4.输出右下三角形
  1. 此处有两种输出方式,一种为用空格代替整式,另一种为用空格和j作为内循环
  2. 只需控制好i,j,整数之间的关系即可
#include<stdio.h>
int main()
{
	int i,j,sum,z;
	for(i=1;i<=9;i++)
	{
		
		for(j=1;j<=9;j++)
		{
		if(j>9-i)
		{
		printf("%d*%2d=%2d ",i,j,sum=i*j); 
		}
		else
		 
		printf("        ");	
		}
		printf("
");
	
	}
	return 0;
 }

这里错啦!!!第二行开始输出的就不是乘法表了,所以这里只有下面那一种办法!

#include<stdio.h>
int main()
{
	int i,j,sum,z;
	for(i=1;i<=9;i++)
	{
		
		for(z=9;z>i;z--)
		printf("        ");	
		for(j=1;j<=i;j++)
		{
		printf("%d*%2d=%2d ",i,j,sum=i*j); 
		}
		printf("
");
	
	}
	return 0;
 }
总结
  1. for的多重循环最主要的就是弄清楚i,j,循环次数(那个整数)之间的关系,弄清之后,要考虑的就只有内循环如何嵌套和是否使用if了。
经验分享 程序员 微信小程序 职场和发展