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

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

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

guguguhuha   2021-01-28 我要评论

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:

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

#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;
}

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

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们