用C语言输出*组成基本的三角形


本篇主要为练习利用for循环语句输出*图形

1.输出正直角三角形

/*
4

*
**
***
****

*/
#include<stdio.h>
int main()
{
   int i,j,n;
   scanf("%d",&n);           //输入你想要的行数
   for(i=1;i<=n;i++)         //系统输出的行数
   {
      for(j=1;j<=i;j++)     //当前行的*数
      printf("*");
      printf("\n");         //每次输出一行结束后换行
   }
      
  return 0;
}

注意:在利用for循环嵌套时,每一个for循环都要运行完成才能跳出内层,进入外层循环。

2.输出倒直角三角形

/*
4

****
***
**
*

*/

#include<stdio.h>
int main()
{
   int i,j,n;
   scanf("%d",&n);           //输入你想要的行数
   for(i=1;i<=n;i++)         //系统输出的行数
   {
      for(j=1;j<=n-i+1;j++)  //当前行的*数
      printf("*");
      printf("\n");          //每次输出一行结束后换行
   }
      
  return 0;
}

3.输出正等腰三角形

此时需要加入空格来实现

/*
4

   *
  ***
 *****
*******

*/
#include<stdio.h>
int main()
{
	int i,j,k,n;
	scanf("%d",&n);             //输入你想要的行数
	for(i=1;i<=n;i++)           //系统输出的行数
	{
		for(k=1;k<=n-i;k++)     //当前行的空格数
		printf(" ");
		for(j=1;j<=2*i-1;j++)   //当前行的*数
		printf("*");	
	    printf("\n");           //每次输出一行结束后换行
	}	
	return 0;
}

4.输出倒等腰三角形

这里只要注意*和空格输出个数公式即可

/*
4

*****
 ***
  *
  
*/
#include<stdio.h>
int main()
{
	int i,j,k,n;
	scanf("%d",&n);                //输入你想要的行数
	for(i=1;i<=n;i++)              //系统输出的行数
	{
		for(k=1;k<=i-1;k++)        //当前行的空格数
		printf(" ");
		for(j=1;j<=2*(n-i)-1;j++)  //当前行的*数
		printf("*");		
	    printf("\n");              //每次输出一行结束后换行
	}	
	return 0;
}

5.输出菱形

更改 i 值所取范围可改变菱形行数

/*
         *
       *  *  *
    *  *  *  *  *
 *  *  *  *  *  *  *
    *  *  *  *  *
       *  *  *
          *

*/
#include<stdio.h>
int main()
{
	int i,j,k;
	for(i=1;i<=4;i++)           //上半等腰三角形行数(高)
	{
		for(j=0;j<=3-i;j++)     //输出的空格数
		printf("   ");
		for(k=1;k<=2*i-1;k++)
		printf(" * ");          //当前行的*数
		printf("\n");		
	}
	for(i=3;i>=1;i--)            //下半等腰三角形行数(高)
	{
		for(j=0;j<=3-i;j++)      //输出的空格数
		printf("   ");
		for(k=1;k<=2*i-1;k++)    //当前行的*数
		printf(" * ");
		printf("\n");
	}
 return 0;
}

6.输出旋转90°的等腰三角形

这里采用了1,2题的拼接思路

/*

*
**
***
**
*

*/
#include<stdio.h>
int main()
{
	int i,j,k;
	for(i=1;i<=3;i++)             //上半
	{
		for(j=1;j<=i;j++)
		printf("*");
		printf("\n");
	}
	for(i=2;i>=1;i--)             //下半
	{
		for(j=1;j<=i;j++)
		printf("*");
		printf("\n");
	}
 return 0;
}

7.补充

1.输出矩形阵列

这是最基本的for循环嵌套案例,打印矩形阵列

/*

****
****
****
****
****

*/
#include<stdio.h>
int main()
{
	int i,j;
	for(i=1;i<=5;i++)      //控制行数
	{
		for(j=1;j<=4;j++)  //控制列数
		printf("*");
		printf("\n");      //换行
	}
 return 0;
}

2.将矩阵倾斜

接下来我们对它稍微做一下改动,打印出一个平行四边形
(这里我们仅仅需要加入空格即可,其余代码不变)

/*

 ****
  ****
   ****
    ****
     ****

*/
#include<stdio.h>
int main()
{
	int i,j,k;
	for(i=1;i<=5;i++)
	{
		for(k=1;k<=i;k++)   //加入空格
		printf(" ");
		for(j=1;j<=4;j++)
		printf("*");
		printf("\n");
	}
 return 0;
}

如果想让它向另一方向倾斜则更改空格处代码即可

for(k=1;k<=5-i+1;k++)
		printf(" ");

结果输出:

     ****
    ****
   ****
  ****
 ****