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

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

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😊)

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

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


目录
相关文章
|
26天前
|
C语言
王桂林C语言从放弃到入门课程
课程目标16天,每天6节课,每节40分钟课堂实录,带你征服C语言,让所有学过和没有学过C语言的人,或是正准备学习C语言的人,找到学习C语言的不二法门。适用人群所有学过和没有学过C语言的人,或是正准备学习C语言的人!
25 2
王桂林C语言从放弃到入门课程
|
1月前
|
存储 编译器 C语言
初识C语言——详细入门(系统性学习day4)
初识C语言——详细入门(系统性学习day4)
|
1月前
|
存储 自然语言处理 编译器
C语言从入门到实战——编译和链接
在C语言中,编译和链接是将源代码转换为可执行文件的两个主要步骤。 编译过程包括以下步骤: 1. 预处理:将源代码中的预处理指令(如`#include`和`#define`)替换为实际的代码。 2. 编译:将预处理后的代码转换为汇编语言。 3. 汇编:将汇编语言转换为机器码指令。 链接过程包括以下步骤: 1. 目标文件生成:将每个源文件编译后生成的目标文件(`.o`或`.obj`)进行合并,生成一个总的目标文件。 2. 符号解析:查找并解析目标文件中的所有符号(例如全局变量和函数名),以确保每个符号都有一个唯一的地址。 3. 地址重定位:根据符号表中符号的地址信息,将目标文件中的所有地址引用
39 0
|
1月前
|
编译器 程序员 C语言
C语言从入门到实战——动态内存管理
在C语言中,动态内存管理是指程序运行时,通过调用特定的函数动态地分配和释放内存空间。动态内存管理允许程序在运行时根据实际需要来分配内存,避免了静态内存分配在编译时就确定固定大小的限制。
45 0
|
1月前
|
搜索推荐 C语言
c语言从入门到实战——回调函数与qsort的讲解和模拟实现
回调函数是一个函数,它作为参数传递给另一个函数,并且能够在该函数内部被调用。在C语言中,回调函数通常被用于实现事件处理和排序算法中。 `qsort`是C标准库中的一个排序函数,它可以对任意类型的数组进行排序。`qsort`需要三个参数:要排序的数组、数组元素的个数和一个指向回调函数的指针。回调函数必须满足两个条件:能够比较数组中的元素,返回一个整数表示它们之间的大小关系;并且它应该能够被`qsort`函数调用。 回调函数是一种在编程中广泛使用的技术,它允许一个函数作为参数传递给另一个函数,并在需要时被调用。这种机制使得代码更加灵活和可重用。
26 0
|
1月前
|
存储 C语言 C++
c语言从入门到实战——数组指针与函数指针
数组指针和函数指针都是指针类型,但是它们指向不同的数据类型。 数组指针:数组指针指向的是数组类型。 函数指针:函数指针指向的是函数类型。 数组指针和函数指针是C语言中的两种重要指针类型。数组指针指向一个数组,可以用来访问和修改数组中的元素;而函数指针则指向一个函数,可以用来调用该函数。两者在语法和用法上有所不同,需要仔细区分。正确理解和使用它们可以提高程序的效率和可维护性。
33 0
|
1月前
|
编译器 Linux PHP
C语言从入门到实战——预处理详解
C语言预处理是C语言编译过程的一个阶段,它在编译之前对源代码进行一系列的处理操作,包括宏替换、文件包含、条件编译等,最终生成经过预处理的代码,然后再进行编译。
45 0
|
1月前
|
存储 缓存 C语言
C语言从入门到实战——文件操作
C语言中的文件操作是通过使用文件指针来实现的。可以使用标准库中的函数来打开、读取、写入和关闭文件。
53 0
|
22天前
|
Java C语言 C++
C语言由入门到精通(1)介绍与数据类型
C语言由入门到精通(1)介绍与数据类型
|
1月前
|
存储 编译器 C语言
【c语言 】数组入门
【c语言 】数组入门
29 0