1 #define _CRT_SECURE_NO_WARNINGS 1

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

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

 1 //打印自定义长度的线段
2 #include<stdio.h>
3 int main()
4 {
5 int i = 0;
6 int n;
7 while (~scanf("%d", &n))
8 {
9 for (i = 0; i < n; i++)
10 printf("* ");
11 printf("\n");
12 }
13 return 0;

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

首先我们从正方形开始:

 1 //打印自定义边长的正方形
2 #include<stdio.h>
3 int main()
4 {
5 int j = 0, i = 0;
6 int n;
7 while (~scanf("%d", &n))
8 {
9 for (i = 0; i < n; i++)//控制行
10 {
11 for (j = 0; j < n; j++)//控制列
12 printf("* ");
13 printf("\n");
14 }
15 }
16 return 0;
17 }
 

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

  1 //打印三角形—1
2 #include<stdio.h>
3 int main()
4 {
5 int j = 0, i = 0, n;
6 while (~scanf("%d", &n))
7 {
8 for (j = 0; j < n; j++)//行
9 {
10 for (i = 0; i < n - j; i++)//列
11 {
12 printf("* ");
13 }
14 printf("\n");
15 }
16 }
17 return 0;
18 }
19
20 //打印三角形—2
21 #include<stdio.h>
22 int main()
23 {
24 int j = 0, i = 0, n;
25 while (~scanf("%d", &n))
26 {
27 for (j = 0; j < n; j++)//行
28 {
29 for (i = 0; i <= j; i++)//列
30 {
31 printf("* ");
32 }
33 printf("\n");
34 }
35 }
36 return 0;
37 }
38
39 //打印三角形—3
40 #include<stdio.h>
41 int main()
42 {
43 int j = 0, i = 0, n;
44 while (~scanf("%d", &n))
45 {
46 for (j = 0; j < n; j++)//行
47 {
48 for (i = 0; i < n - j - 1; i++)//列
49 {
50 printf(" ");
51 }
52 for (i = 0; i <= j; i++)
53 {
54 printf("* ");
55 }
56 printf("\n");
57 }
58 }
59 return 0;
60 }
61
62 //打印三角形—4
63 #include<stdio.h>
64 int main()
65 {
66 int j = 0, i = 0, n;
67 while (~scanf("%d", &n))
68 {
69 for (j = 0; j < n; j++)//行
70 {
71 for (i = 0; i < j ; i++)//列
72 {
73 printf(" ");
74 }
75 for (i = 0; i < n - j ; i++)
76 {
77 printf("* ");
78 }
79 printf("\n");
80 }
81 }
82 return 0;
83 }
84
85 //打印三角形—5
86 #include<stdio.h>
87 int main()
88 {
89 int j = 0, i = 0, n;
90 while (~scanf("%d", &n))
91 {
92 for (j = 0; j < n; j++)//行
93 {
94 for (i = 0; i <= n - j ; i++)//列
95 {
96 printf(" ");
97 }
98 for (i = 0; i <= j; i++)
99 {
100 printf("* ");
101 }
102 printf("\n");
103 }
104 }
105 return 0;
106 }
107
108 //打印三角形—6
109 #include<stdio.h>
110 int main()
111 {
112 int j = 0, i = 0, n;
113 while (~scanf("%d", &n))
114 {
115 for (j = 0; j < n; j++)//行
116 {
117 for (i = 0; i < j; i++)//列
118 {
119 printf(" ");
120 }
121 for (i = 0; i < n - j; i++)
122 {
123 printf("* ");
124 }
125 printf("\n");
126 }
127 }
128 return 0;
129 }

              

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

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

//空心正方形
#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");
}
}
}
 1 //空心三角形
2 #include<stdio.h>
3 int main()
4 {
5 int n;
6 int i = 0, j = 0;
7 while (~scanf("%d", &n))
8 {
9 for (i = 0; i < n; i++)
10 {
11 for (j = 0; j <= i; j++)
12 {
13 if (j == 0 || i == j || i==n-1 )
14 printf("* ");
15 else
16 printf(" ");
17 }
18
19 printf("\n");
20 }
21 }
22 }

   

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

 1 #define _CRT_SECURE_NO_WARNINGS 1
2 #include<stdio.h>
3 #include<math.h>
4 int main()
5 {
6 int i = 0, j = 0;
7 int n;
8 while (~scanf("%d", &n))//在这的n我们必须保证是奇数
9 {
10 for (i = 0; i < n; i++)
11 {
12 for (j = 0; j < abs(n / 2 - i); j++)
13 printf(" ");
14 for (j = 0; j < n - 2 * abs(n / 2 - i); j++)
15 printf("*");
16 printf("\n");
17 }
18 }
19 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://blog.csdn.net/marwi_study/article/details/88749427?utm_source=app

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

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

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

最新文章

  1. frame里的链接跳转
  2. [转载]学习VC MFC开发必须了解的常用宏和指令————复习一下
  3. 如何设置WIN10任务栏
  4. 单例设计模式getInstance()
  5. iBATIS sql(XML)中的大于、小于、like等符号写法
  6. Get familiar with key Frameworks of ios
  7. VS下面的编译错误-----转换到 COFF 期间失败: 文件无效或损坏
  8. 集合ArrayList案例
  9. zoj 1649 Rescue
  10. 使用wordpress搭建独立域名的个人博客或网站
  11. mvc-dispatchar-servlet.xml文件报错
  12. html案例详解(一)
  13. GUID获取16位19位22位的唯一字符串
  14. TCP/IP的4层模型
  15. function()
  16. select2插件设置选中值并显示的问题
  17. Linux下配置yum
  18. &quot;java.lang.IllegalStateException: No instrumentation registered! Must run under a registering instrumentation.&quot;问题解决
  19. 《gradle权威指南》--Gradle入门
  20. Android Studio开发第三篇版本管理Git

热门文章

  1. 怎么在Word上编辑数学公式?教你一招
  2. Matlab 数值计算
  3. CentOS下解压缩
  4. golang 自学系列(三)—— if,for,channel
  5. java44
  6. Python音视频开发:消除抖音短视频Logo的图形化工具实现
  7. python——pandas技巧(处理dataframe每个元素,不用for,而用apply)
  8. 数据结构——创建链表或树节点的小trick(哑结点)
  9. [亲测可用]BCompare文件比较对比工具4.3.4绿色版
  10. 哀悼疫情,全站灰色如何实现,CSS滤镜一行代码实现