C语言对于轴对称图形输出的分析
来源:互联网 发布:网络侵犯著作权 编辑:程序博客网 时间:2024/04/29 06:27
开发环境:Turbo C 2.0
*
***
*****
*******
*****
***
*
题目很简单就是输出如图所示的图形,图形用你喜欢的图形输出即可:*,~,-,+等。
当初做这样的题目的时候我们是在学循环,因此是要我们用循环的思想来解决问题,而不是直接把图形输出。
我们先把这个图形用*表示出来
*
***
*****
*******
*****
***
*
我先给每行标上号(请注意下怎么标号的)
* -3 //有一个图
*** -2 //有三个图
***** -1 //有五个图
******* 0 //有七个图
***** 1 //有五个图
*** 2 //有三个图
* 3 //有一个图
这里值得注意的就是:中间图最多为七,也就是最大行数的数字(规律一:得到数字7[最大行数])
标的号的绝对值就是每行前面空的格数。由于图形的特殊型,它必须是基数行的,所以标的号始终是 [-(7-1)/2,(7-1)/2]之间
(规律二:循环是从-(最大行数-1)/2到(最大行数-1)/2)
由中间向两边展开始终是少两个,又根据标号的规律性可知由中间向两边的输出图形数为:(最大行数-2*|标号|)标号也就是循环数
总数三大规律我们可知道,如果把输出图形写作一个函数的话,那么它只需传入一个参数,那就是最大行数。
void print(int maxnumber)
{
int i = 0, j = 0;
for (i = -((maxnumber-1)/2); i <= ((maxnumber-1)/2); i ++)
{
for (j = 0; j < abs(i); j ++)//输出空格
{
printf(” “);
}
for ( j = 0; j < (maxnumber-2*abs(i)); j ++)
{
printf(”*”);
}
printf(”/n”);
}
}
我的完整程序如下:
#include<stdio.h>
void print(int maxnumber);
int main(void)
{
printline(9);
return 0;
}
void print(int maxnumber)
{
int i = 0, j = 0;
for (i = -((maxnumber-1)/2); i <= ((maxnumber-1)/2); i ++)
{
for (j = 0; j < abs(i); j ++)
{
printf(” “);
}
for (j = 0; j < (maxnumber-2*abs(i)); j ++)
{
printf(”*”);
}
printf(”/n”);
}
}
个人永久博客:Chenliang’s blog
C语言对于轴对称图形输出的分析
- C语言对于轴对称图形输出的分析
- 输出“心” 图形的C语言代码
- 空心三角形(图形的输出)c语言
- 【C语言】输出好看的星星图形
- 【c语言】输出一个图形
- C语言输出星号图形
- C语言输出菱形图形
- C语言数组应用之图形数字的输出
- c语言之打印输出图形
- 对于编程语言的分析
- 对于c语言的关键字
- 对于C语言的感想
- 对于C语言的输出格式("/n%2d,%2.1f,%2.11f)是什么意思
- c 语言的输出
- c语言输出的%
- C语言实例10——有关ASCII图形的输出
- 轴对称
- 趣题:用奇数个相同的多联骨牌组成轴对称图形
- EasyUI API
- Web 中嵌入图表的免费资源
- linux 中断 异常详细分析 --- 基于linux 2.6.28
- SQL SERVER 全角和半角的解决方法
- 路由协议之间的重发布
- C语言对于轴对称图形输出的分析
- Six Revisions 访谈:大学里的 Web 标准(下)
- Head First C# 中文版 图文皆译 第八章 枚举和集合 page354
- vc 鲜为人知的 __if_exists
- 你好csdn
- WEBDisk网络硬盘
- 一个高效的程序员和一个低效的程序员
- 正则表达式
- c++中的堆和栈