利用C语言如何实现一些简单图形的打印

 更新时间:2020年12月22日 10:47:57   作者:guguguhuha  
这篇文章主要给大家介绍了关于利用C语言如何实现一些简单图形的打印的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1#define_CRT_SECURE_NO_WARNINGS 1

因为笔者采用的是VS的编译环境所以有了上面的这一句话

我们都知道平面图形是由一条条线段构成,所以我们就先实现线段的打印

//打印自定义长度的线段
#include<stdio.h>
int main()
{
 int i = 0;
 int n;
 while (~scanf("%d", &n))
 {
 for (i = 0; i < n; i++)
 printf("* ");
 printf("\n");
 }
 return 0;

那么,线段学会了,我们就可以进行简单图形的打印了

首先我们从正方形开始:

//打印自定义边长的正方形
#include<stdio.h>
int main()
{
 int j = 0, i = 0;
 int n;
 while (~scanf("%d", &n))
 {
 for (i = 0; i < n; i++)//控制行
 {
 for (j = 0; j < n; j++)//控制列
 printf("* ");
 printf("\n");
 }
 }
 return 0;
}

接下来是三角形:(笔者准备了六种三角形)

//打印三角形—1
#include<stdio.h>
int main()
{
 int j = 0, i = 0, n;
 while (~scanf("%d", &n))
 {
 for (j = 0; j < n; j++)//行
 {
 for (i = 0; i < n - j; i++)//列
 {
 printf("* ");
 }
 printf("\n");
 }
 }
 return 0;
}

//打印三角形—2
#include<stdio.h>
int main()
{
 int j = 0, i = 0, n;
 while (~scanf("%d", &n))
 {
 for (j = 0; j < n; j++)//行
 {
 for (i = 0; i <= j; i++)//列
 {
 printf("* ");
 }
 printf("\n");
 }
 }
 return 0;
}

//打印三角形—3
#include<stdio.h>
int main()
{
 int j = 0, i = 0, n;
 while (~scanf("%d", &n))
 {
 for (j = 0; j < n; j++)//行
 {
 for (i = 0; i < n - j - 1; i++)//列
 {
 printf(" ");
 }
 for (i = 0; i <= j; i++)
 {
 printf("* ");
 }
 printf("\n");
 }
 }
 return 0;
}

//打印三角形—4
#include<stdio.h>
int main()
{
 int j = 0, i = 0, n;
 while (~scanf("%d", &n))
 {
 for (j = 0; j < n; j++)//行
 {
 for (i = 0; i < j ; i++)//列
 {
 printf(" ");
 }
 for (i = 0; i < n - j ; i++)
 {
 printf("* ");
 }
 printf("\n");
 }
 }
 return 0;
}

//打印三角形—5
#include<stdio.h>
int main()
{
 int j = 0, i = 0, n;
 while (~scanf("%d", &n))
 {
 for (j = 0; j < n; j++)//行
 {
 for (i = 0; i <= n - j ; i++)//列
 {
 printf(" ");
 }
 for (i = 0; i <= j; i++)
 {
 printf("* ");
 }
 printf("\n");
 }
 }
 return 0;
}

//打印三角形—6
#include<stdio.h>
int main()
{
 int j = 0, i = 0, n;
 while (~scanf("%d", &n))
 {
 for (j = 0; j < n; j++)//行
 {
 for (i = 0; i < j; i++)//列
 {
 printf(" ");
 }
 for (i = 0; i < n - j; i++)
 {
 printf("* ");
 }
 printf("\n");
 }
 }
 return 0;
}

现在就可以尝试一下图形的挖空了

我们仍然保持之前的顺序从正方形到三角形:

//空心正方形
#include<stdio.h>
int main()
{
 int j = 0,i=0;
 int n;
 while (~scanf("%d", &n))
 {
 for (j = 0; j < n; j++)
 {
 for (i = 0; i < n; i++)
 {
 if (j == 0 || i==0 ||j==n-1 || i==n-1)
  printf("* ");
 else
  printf(" ");
 }
 printf("\n");
 }
 }
}
//空心三角形
#include<stdio.h>
int main()
{
 int n;
 int i = 0, j = 0;
 while (~scanf("%d", &n))
 {
 for (i = 0; i < n; i++)
 {
 for (j = 0; j <= i; j++)
 {
 if (j == 0 || i == j || i==n-1 )
  printf("* ");
 else
  printf(" ");
 }

 printf("\n");
 }
 }
}

那么我们可以从以上知识尝试一下自己打出一个菱形以及空心菱形

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<math.h>
int main()
{
 int i = 0, j = 0;
 int n;
 while (~scanf("%d", &n))//在这的n我们必须保证是奇数
 {
 for (i = 0; i < n; i++)
 {
 for (j = 0; j < abs(n / 2 - i); j++)
 printf(" ");
 for (j = 0; j < n - 2 * abs(n / 2 - i); j++)
 printf("*");
 printf("\n");
 }
 }
 return 0;

为了更好的理解,笔者微微修改了以上代码

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<math.h>
#include<Windows.h>
int main()
{
 int i = 0, j = 0;
 int n;
 while (~scanf("%d", &n))
 {
 for (i = 0; i < n; i++)
 printf("%2d",i);
 printf("\n");
 for (i = 0; i < n; i++)
 {
 
 for (j = 0; j < abs(n / 2 - i); j++)
 {
 printf(" ");
 Sleep(100);
 }
 for (j = 0; j < n - 2 * abs(n / 2 - i); j++)
 {
 printf("* ");
 Sleep(100);
 }
 printf("\n");
 Sleep(100);
 }
 }
 return 0;
}

此外在提供一个打印菱形的代码

#include<stdio.h>
int main()
{
    int i, j, n;
    {
         while (~scanf("%d", &n))
         {//上边部分
             for (i = 0; i < n; i++)
             {
                 for (j = i; j < n - 1; j++)
                      printf(" ");
                 for (j = 0; j < 2 * i + 1; j++)
                      printf("*");
                 printf("\n");
             }
             for (i = n - 2; i >= 0; i--) //这里i从n-2开始的,要是从n-1开始会出现两行相同的情况
             {
                 for (j = i; j < n - 1; j++)
                      printf(" ");
                 for (j = 0; j < 2 * i + 1; j++)
                      printf("*");
                 printf("\n");
             }//下边部分
         }
         return 0;
    }
}

当然,肯定要在这给几个笔者参考过的文章

参考 https://www.jb51.net/article/202654.htm

在这笔者再提供一个由字符组成的三角形

#include<stdio.h>

int main()
{
 int i, j, n, k = 0;
 char ch = 'A';
 printf("请输入行数:");
 scanf("%d", &n);
 for (i = 0; i < n; i++)
 {
 for (j = 0; j < 2*(n-i)-1; j++)
 {
 k++;
 if (k % 2 != 0)
 {
 printf("%c", ch++);
 }
 else
 printf("%c", ch);
 }
 printf("\n");
 }
 return 0;
}

最后可以大家可以尝试一下自己打印空心菱形以及由字符构成的图形

到此这篇关于利用C语言如何实现一些简单图形打印的文章就介绍到这了,更多相关C语言简单图形的打印内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++ STL中vector容器的使用

    C++ STL中vector容器的使用

    这篇文章主要为大家详细介绍了C++ vector容器的使用,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • Visual Studio2022下Opencv的配置图文教程

    Visual Studio2022下Opencv的配置图文教程

    本文主要介绍了Visual Studio2022下Opencv的配置图文教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • C++实现拼图游戏代码(graphics图形库)

    C++实现拼图游戏代码(graphics图形库)

    这篇文章主要为大家详细介绍了C++实现拼图游戏代码,带有graphics图形库,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • C++实用库之字节流合成器

    C++实用库之字节流合成器

    在处理跨平台的数据交换或网络通信时,字节流的重要性更加突出,不同的系统可能有不同的字节序(大端序或小端序),因此在发送和接收字节流时,可能需要考虑字节序的转换,这篇文章主要介绍了C++实用库之字节流合成器,需要的朋友可以参考下
    2024-04-04
  • C语言实现的顺序表功能完整实例

    C语言实现的顺序表功能完整实例

    这篇文章主要介绍了C语言实现的顺序表功能,结合完整实例形式分析了C语言顺序表的创建、添加、删除、排序、合并等相关操作技巧,需要的朋友可以参考下
    2018-04-04
  • C++实现十六进制字符串转换成int整形值的示例

    C++实现十六进制字符串转换成int整形值的示例

    今天小编就为大家分享一篇关于C++实现十六进制字符串转换成int整形值的示例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • C语言在输入输出时遇到的常见问题总结

    C语言在输入输出时遇到的常见问题总结

    大家在平时的做题中是否会遇到和我一样的烦恼,题目的代码已经基本完成,但是在输出时候,总是和题目给出的样例输出格式不同 ,导致题目不能通过。为了解决这一烦恼,我总结了以下几点,需要的可以参考一下
    2022-09-09
  • Qt实现简易计时器的示例代码

    Qt实现简易计时器的示例代码

    计时器实现四个功能:开始计时、停止计时、暂停计时以及打点。当点击暂停时,开始按钮和停止按钮无法点击。当点击停止时,开始按钮和暂停按钮无法点击,此时停止按钮变为清零。本文将用Qt实现这样的一个计时器,需要的可以参考一下
    2022-06-06
  • Visual Studio 2022 安装低版本 .Net Framework的图文教程

    Visual Studio 2022 安装低版本 .Net Framework的图文教程

    这篇文章主要介绍了Visual Studio 2022 如何安装低版本的 .Net Framework,首先打开 Visual Studio Installer 可以看到vs2022 只支持安装4.6及以上的版本,那么该如何安装4.6以下的版本,下面将详细介绍,需要的朋友可以参考下
    2022-09-09
  • C语言中程序环境和预处理的详细图文讲解

    C语言中程序环境和预处理的详细图文讲解

    这篇文章主要给大家介绍了关于C语言中程序环境和预处理的相关资料,我们写的C语言代码,从运行,到在屏幕上生成结果,经历了比较复杂的过程,需要的朋友可以参考下
    2023-02-02

最新评论