c语言实现一些简单图形的打印
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;
}

最后可以大家可以尝试一下自己打印空心菱形以及由字符构成的图形
c语言实现一些简单图形的打印的更多相关文章
- Linux命令之dot - 绘制DOT语言脚本描述的图形
本文链接:http://codingstandards.iteye.com/blog/840055 用途说明 Graphviz (Graph Visualization Software的缩写)是一个 ...
- 输出简单图形(StringBuilder代替双重循环)
在有些题目中打印简单图形必须使用StringBuilder或者StringBuffer,否则会运行超时(用String都会超时). 因为在题目的要求中说到输入的n是小于1000的,用双重循环就会超时, ...
- Win32简单图形界面程序逆向
Win32简单图形界面程序逆向 前言 为了了解与学习底层知识,从 汇编开始 -> C语言 -> C++ -> PE文件 ,直至今天的Win32 API,着实学的令我头皮发麻(笑哭). ...
- 学习笔记:HTML5 Canvas绘制简单图形
HTML5 Canvas绘制简单图形 1.添加Canvas标签,添加id供js操作. <canvas id="mycanvas" height="700" ...
- R语言:用简单的文本处理方法优化我们的读书体验
博客总目录:http://www.cnblogs.com/weibaar/p/4507801.html 前言 延续之前的用R语言读琅琊榜小说,继续讲一下利用R语言做一些简单的文本处理.分词的事情.其实 ...
- 踢爆IT劣书出版黑幕——由清华大学出版社之《C语言入门很简单》想到的(1)
1.前言与作者 首先声明,我是由于非常偶然的机会获得<C语言入门很简单>这本书的,绝对不是买的.买这种书实在丢不起那人. 去年这书刚出版时,在CU论坛举行试读推广,我当时随口说了几句(没说 ...
- 留念 C语言第一课简单的计算器制作
留念 C语言第一课简单的计算器制作 学C语言这么久了. /* 留念 C语言第一课简单的计算器制作 */ #include<stdio.h> #include<stdlib.h ...
- [ASP.NET] 图形验证码破解-以简单图形为例
原文 http://www.dotblogs.com.tw/joysdw12/archive/2013/06/08/captcha-cracked.aspx 前言 这次来讲个比较有趣的主题,就是该如何 ...
- 用C语言编写一个简单的词法分析程序
问题描述: 用C或C++语言编写一个简单的词法分析程序,扫描C语言小子集的源程序,根据给定的词法规则,识别单词,填写相应的表.如果产生词法错误,则显示错误信息.位置,并试图从错误中恢复.简单的恢复方法 ...
随机推荐
- IMX8移植cpufreq子系统
一.简介 CPUFreq子系统位于 drivers/cpufreq目录下,负责进行运行过程中CPU频率和电压的动态调整,即DvFS( Dynamic Voltage Frequency ...
- 使用iOS 设备管理器 iMazing导出苹果设备中的录音文件
iMazing是一款功能强大的苹果设备管理软件,能为用户提供便捷的录音文件导出功能.用户可以直接将录音文件从苹果设备中导出,接下来,就让小编为大家演示一下如何操作吧. 图1:iMazing界面 1.打 ...
- FL Studio中有关减少CPU占用率的一些技巧
在使用FL Studio20进行音乐制作时经常容易碰到的工程卡顿,声音延迟现象绝大部分是由于电脑CPU超负荷运行而导致的.除了提升电脑本身的性能以外,在FL Studio20中我们也可以运用一些方法来 ...
- 仅需几步,EasyRecovery就能恢复RAID数据
RAID是什么?RAID是具有冗余能力的磁盘阵列,简单的来说就是把相同的数据存储在多个硬盘的不同的地方. 在了解了RAID之后就会知道,RAID中的数据也是有可能丢失的,虽然RAID数据丢失会引发一系 ...
- python debug调试
------------恢复内容开始------------ 一.debug 1.step over f8(单步调试) 2.进入到下一个断点 3.运行到指定行 4.进入到对应的代码行,(和单步调试配合 ...
- laravel 返回SQL
默认情况下,toSql 获取到的 sql 里面的参数使用 "?" 代替的,如下: 1 DB::table('user')->where('id', 1)->toSql( ...
- 用FL Studio基础版制作一首完整的电音
电音制作,自然少不了适合做电音的软件,市面上可以进行电音制作的软件不少,可是如果在这些软件中只能选择一款的话,想必多数人会把票投给FL Studio,毕竟高效率是永远不变的真理,今天就让我们来看看如何 ...
- Spring Boot 统一返回结果及异常处理
在 Spring Boot 构建电商基础秒杀项目 (三) 通用的返回对象 & 异常处理 基础上优化.调整 一.通用类 1.1 通用的返回对象 public class CommonReturn ...
- PyQt(Python+Qt)学习随笔:Qt Designer中QAbstractButton派生按钮部件的icon属性和iconSize属性
icon属性 icon属性保存按钮上展示的图标,图标的缺省大小由图形界面的样式决定,但可以通过 iconSize 属性进行调整. 图标的几种子属性状态的含义与QWidget的windowIcon属性相 ...
- centos 7系统,解决python3.x 安装后使用yum不能安装的问题(错误:urlgrabber-ext-down | KeyboardInterrupt)
1.在安装python3.xx版本后,通过yum去安装软件会出现问题,目前我遇到的有2种问题 比如显示:urlgrabber-ext-down Downloading packages: File & ...