【C语言-19】"各类三角形,菱形与半菱形,空心菱形,送给你........''小代码大课堂,通通都有了哦~~~~

目录

 

 

解题前的手绘图:

打印三类三角形:

直角三角形:

.等腰三角形:

.空心等腰三角形:

打印四类菱形:

 1.菱形打印

2.半菱形(递增)打印:

3.半菱形(奇数增*)

4.空心菱形打印:


 

解题前的手绘图:

打印三类三角形:

  1. 直角三角形:

  2. 解题分析:
  • 直角三角形,第一行一个*.第二行两个*,依次递增;
  •  
  • 定义i表示行数,定义j表示列数,就固定好小*的位子啦~~~ 
  •  
  1. 小代码如下:
#include<stdio.h>

#include<stdlib.h>

int main() {

	int i, j;

	for (i = 0; i < 6; i++) {


		for (j = 0; j < i; j++) {

			printf("*");

		}
		printf("\n");
	}
	system("pause");

	return 0;
		
}

运行结果:

2.等腰三角形:

解题分析:

  •  
  • 行数为4;第一行输出三个空格一个*,然后随着行数增加依次递减;,最后一行输出行数的二倍减一颗*,满星!
  •  
  • 定义行数i,制定总行数n,l列数j;
  • 利用for循环得到代码如下:
  • #define _CRT_SECURE_NO_WARNINGS
    
    #include<stdio.h>
    
    #include<stdlib.h>
    
    int main(){
    
    	int i, j, n;
    
    	printf("请输入要打印等腰三角形的行数:  ");
    
    	scanf("%d", &n);
    
    	for (i = 1; i <= n; i++)
    	{
    		for (j = 1; j <= n-i; j++)
    
    		{
    			printf(" ");
    
    		}
    		for (j = 1; j <= 2 * i - 1; j++)
    	
    		{
    			printf("*");
    
    		}
    		printf("\n");
    	}
    	system("pause");
    
    	return 0;
    }
    

    运行结果:

  •  

  • 3..空心等腰三角形:

  • 解题分析:
  •  每行字符是n+i-1个,只有第n-i+1和n+i-1打印星星;
  •  定义总行数n,行号i;列号j;i=0表示第一行;
  •   直接贴代码:
  • #include<stdio.h>
    #include<stdlib.h>
    
    int main()
    {
    	int i, j, n;
    	printf("请输入要打印的三角形行数: ");
    	scanf("%d", &n);
    	for (i = 1; i < n; i++) {
    		for (j = 1; j <= n + i - 1; j++) {
    			if (j == n - i + 1 || j == n + i - 1) {
    				printf("*");
    			}
    			else {
    				printf(" ");
    			}
    		}printf("\n");
    
    	}
    	for (i = 1; i <= 2 * n - 1; i++) {
    		printf("*");
    	}
            system("pause");
              return 0;
    }
    

    运行结果:

  • 打印四类菱形:

  •  1.菱形打印

  • 解题分析:
  •   
  • 分两部分打印.菱形等于先打印一个正的等腰三角形,在接着打印一个倒的等腰三角形;
  •  
  •  根据前面等腰三角形代码进行升级改进,得到代码如下:
  • #include<stdio.h>  
    #include<stdlib.h>
    int main()
    {
    	 
    	int i ,j,n,h;
    		printf("输入行数: ");
    	scanf("%d", &h);
    	for (i = 1; i <= h; i++)//上半部分打印
    	{
    		for (n = 1; n <= h - i; n++)//打印空格,
    		{
    			printf(" ");
    		}
    		for (j = 1; j <= 2 * i - 1; j++)
    		{
    			printf("*");
    		}
    		printf("\n");
    	}
    	for (i = 1; i <= h - 1; i++)//下半部分
    	{
    		for (n = 1; n <= i; n++)
    		{
    			printf(" ");
    		}
    		for (j = 1; j <= 2 * (h - i) - 1; j++)
    		{
    			printf("*");
    		}
    		printf("\n");
    	}
    	system("pause");
    	return 0;
    }
    

    运行结果:

  • 2.半菱形(递增)打印:

  • 解题分析:
  • 打印正直角三角形,然后打印倒三角形; 

  •  

  •  #define _CRT_SECURE_NO_WARNINGS
    #include<stdio.h>
    #include<stdlib.h>
    int main() {
         int i, j, n;
         printf("输入打印的行数:");
    
         scanf("%d", &n);
    
          for (i = 0; i < n; i++) {
    
                     for (j = 0; j <= i; j++) {
    
    			printf("*");
    
    		}
    		printf("\n");
    	}
    		for (i = n + 1; i <= 2 * n - 1; i++) {
    
    			for (j = 1; j <= 2 *n -i; j++) {
    
    				printf("*");
    
    
    			}
    
    			printf("\n");

    运行结果:

3.半菱形(奇数增*)

解题分析:

  •  
  •  
  •  
  •  
  • #define _CRT_SECURE_NO_WARNINGS
    #include<stdio.h>
    #include<stdlib.h>
    	int main() {
    		int i, j, n;
    		printf("输入打印的行数:");
    		scanf("%d", &n);
    			for (i = 1; i <= n; i++)
    			{
    				for (j = 1; j <= 2 * i - 1; j++)
    				{
    					printf("*");
    				}
    				printf("\n");//每打印完一行,转到下一行
    			}
    			for (i = n+1; i <=2*n-1; i++)
    			{
    				for (j = 1; j <= 4*n-2*i; j++)
    				{
    					printf("*");
    				}
    				printf("\n");
    			}
    			system("pause");
    
    			return 0;
    
    		
    		}
    
    	

        

  • 运行结果:

4.空心菱形打印:

  • 解题分析:
  •  
  •  
  •  
  • 代码如下:
  • #define _CRT_SECURE_NO_WARNINGS
    #include<stdio.h>
    #include<stdlib.h>
    	int main() {
    		int i, j, n;
    		printf("输入打印的行数:");
    		scanf("%d", &n);
    		for (i = 0; i < n; i++)
    		{
    			for (j = 0; j < n - i; j++)
    			{
    				printf(" ");//打印上半部分外部的的空格
    			}
    			for (j = 0; j < 2 * i + 1; j++)
    			{
    
    				if ((j == 0) || (j + 1 == 2 * i + 1))
    				{
    					printf("*");//打印上半部分的星星
    				}
    				else
    				{
    					printf(" ");剩余部分打印空格
    				}
    			}	printf("\n");
    		
    		}
    
    		for (i = 0; i < n-1; i++)
    		{
    			for (j = 0; j < i + 2; j++)
    			{
    				printf(" ");
    			}
    			for (j = 2*(n-1); j > 2 * i + 1; j--)
    			{
    		
    				if ((j == 2 * (n - 1)) || (j - 1 == 2 * i + 1))
    				{
    					printf("*");
    				}
    				else {
    					printf(" ");
    				}
    			}
    			printf("\n");
    		}
    		printf("\n");
    		system("pause");
    		return 0;
    		
    		}

    运行结果:

 

午安.

 

  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值