C语言入门——打印输出各类三角形问题(附:正方形、长方形、菱形)

举报
Code_流苏 发表于 2022/04/17 13:18:44 2022/04/17
【摘要】 C语言入门——输出各类三角形问题(方法讲解+输出练习)★本篇内容简介:1.方法的解释——>2.各类三角形的输出——>3.补充内容(正方形、长方形、菱形)相信你看完之后,会有收获!! 1.方法的解释关于输出各类三角形问题,首先要知道其方法,如何去做:一般常用方法有: ①直接打印输出// 打印方法:常用的多行字符串写法关于多行字符串写法的解释,举个例子来做阐述:#include<stdio.h...

C语言入门——输出各类三角形问题(方法讲解+输出练习)

本篇内容简介1.方法的解释——>2.各类三角形的输出——>3.补充内容(正方形、长方形、菱形)

相信你看完之后,会有收获!!

1.方法的解释

关于输出各类三角形问题,首先要知道其方法,如何去做:

一般常用方法有:

①直接打印输出

// 打印方法:常用的多行字符串写法
关于多行字符串写法解释举个例子来做阐述

#include<stdio.h>
int main()
{
	printf("line 1\n"
		   "line 2\n"
		   "line 3\n"
		   "line 4\n"
		   "line 5\n"
		   "line ...\n");
	return 0;
}

②循环遍历输出(需要找要图形的输出规律)

比如下面2.各类三角形中第一个基本三角形:

#include <stdio.h>
int main(){
	for(int i=1;i<=5;i++){
		for(int j=1;j<=i;j++){
		   printf("*");
		}
		printf("\n");
	}	
}

结果如图:
在这里插入图片描述

但是如果只用第一层循环,结果如图:

在这里插入图片描述

发现第一层循环是控制列的,而第二层自然是控制行的咯

流程简要解释:

基本三角形由上向下从 1个 " * " 到 5个 " * " 那每行的 " * "就要有变化,所以j<=i,因为i是从1到5的。

i=1时j <= 1 j层循环 j=1循环一次 输出一个* 然后 j++ j =2 大于 i 跳出j层循环,换行一次,然后i++,i=2

i=2时j <= 2 j层循环 j=1循环两次 输出两个**

依次类推就输出了如下图形:

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

了解完方法之后,我们来看一下各类三角形的输出:

2.各类三角形的输出

①基本三角形(左下三角形)

如图:
在这里插入图片描述

#include <stdio.h>

int main()
{
	for(int i=1;i<=5;i++)
    {
		for(int j=1;j<=i;j++)
        {
		   printf("*");
		}
		printf("\n");
	}	
}
②左上三角形

如图:
在这里插入图片描述

#include <stdio.h>

int main(){
	for(int i=1;i<=5;i++)
    {
		for(int j=i;j<=5;j++)
        {
		   printf("*");
		}
		printf("\n");
	}	

}
③右下三角形

ps:联系左上三角形进行理解,它们是相对的。

如图:在这里插入图片描述

#include <stdio.h>

int main(){
	for(int i=1;i<=5;i++)
    {
		for(int j=1;j<=5-i;j++) //相比前两个多加了for循环
        {                       //相当于输出了一个左上空格三角形
		   printf(" ");
		}
		for(int n=1;n<=i;n++)  
        {
		   printf("*");
		}
		printf("\n");
	}
	return 0;

}
④右上三角形

ps:联系左下三角形进行理解,它们是相对的。

如图:
在这里插入图片描述

#include <stdio.h>

int main(){
	for(int i=1;i<=5;i++)
    {
		for(int j=1;j<=i;j++)//相比前两个多加了个for循环
        {					 //相当于输出了一个左下空格三角形			
		   printf(" ");
		}
		for(int n=0;n<=5-i;n++)
        {
		   printf("*");
		}
		printf("\n");
	}
	return 0;
}
⑤正向等腰三角形

ps:联系右下和左下三角形进行理解,它们合并,去掉多余的交集边,就成了正等腰三角形。

如图:
在这里插入图片描述

#include <stdio.h>

int main(){
	for(int i=0;i<=4;i++)
    {
		for(int j=0;j<=4-i;j++)
        {
	     	printf(" ");
		}
		for(int k=0;k<=i*2;k++)
        {
		  printf("*");
		}
		printf("\n");
	}
	return 0;
}
⑥倒向等腰三角形

ps:联系右上和左上三角形进行理解,它们合并,去掉多余的交集边,就成了倒等腰三角形。

如图:在这里插入图片描述


#include <stdio.h>

int main()
{
		for(int a=0;a<=4;a++)
        {
		for(int b=0;b<=a;b++)
        {
			printf(" ");
		}
		for(int c=0;c<9-2*a;c++)
        {
		  printf("*");
		}
		printf("\n");
}
	return 0;
}

3.补充:

⑦正方形

ps:联系基本三角形

如图:在这里插入图片描述

#include <stdio.h>

int main(){
	for(int i=1;i<=4;i++)
    {
		for(int j=0;j<=4;j++)
        {
		   printf("*");
		}
		printf("\n");
	}	
}
⑧长方形

ps:联系基本三角形

如图:在这里插入图片描述

#include <stdio.h>

int main(){
	for(int i=0;i<=4;i++)
    {
		for(int j=0;j<=4;j++)
        {
		   printf("*");
		}
		printf("\n");
	}	
}
⑨菱形

ps:联系正向和倒向等腰三角形进行理解,它们合并,去掉多余的交集边,就成了菱形。

如图:在这里插入图片描述

#include <stdio.h>

int main(){
	for(int i=0;i<=4;i++)
	{
		
		for(int j=0;j<=4-i;j++)
		{
	     	printf(" ");
		}
		
		for(int k=0;k<=i*2;k++)
		{
		  printf("*");
		}
		
		printf("\n");
	}
   for(int a=1;a<=4;a++)
   {
   	
		for(int b=0;b<=a;b++)
		{
			printf(" ");
		}
		
		for(int c=0;c<9-2*a;c++)
		{
		  printf("*");
		}
		
		printf("\n");
    }
 	return 0;
}

作者Code_流苏(一个喜欢古诗词和编程的Coder😊)

★喜欢的话,还请多多点赞与关注! 感谢支持!
如有缺漏或者错误,还请帮忙指出!

如果大家有其他更好的方法,欢迎评论分享!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。