习题4-9 打印菱形图案 (15 分)
习题4-9 打印菱形图案 (15 分)
本题要求编写程序,打印一个高度为n的、由“*”组成的正菱形图案。
输入格式:
输入在一行中给出一个正的奇数n。
输出格式:
输出由n行星号“*”组成的菱形,如样例所示。每个星号后跟一个空格。
输入样例:
7
结尾无空行
输出样例:
* * * * * * * * *
* * * * * * * * * * * * * * * *
思路:首先上面和下面是对称的,中间有点特殊,但是又和上面的有很大的关系,所以我们就索性把中间的那一部分和上面的三行弄成一个规律,首先我们先打印出来空格,不难发现空格的规律是6 4 2 0,对应的行数是1 2 3 4,根据等差数列,我们可以看出来对应的关系是2*m-2*i;再看看*的规律,第一行1个,第二行3个,第三行5个,这样下去,我们又找到了循环的次数与行数的关系,也就是第二个for的判断语句,前4行完成以后我们再去看后几行,也就变成了m-1,再根据行数,写出来对应空格的规律,再根据行数看出来对应*的规律,说白了这道题也就是找到对应行数与对应图案的规律即可,在打印回车的时候这里千万记得一点就是我们需要先打印空格再打印回车。
#include <stdio.h>
int main(){int i,j;int n,m;scanf("%d",&n);m=n/2+1;//先是找到上半行的循环次数for(i=1;i<=m;i++){//空格for(j=0;j<2*m-2*i;j++){printf(" ");}j=1;for(i;j<=2*i-1;j++){if(j==2*i-1)printf("* \n");//打印出*else printf("* ");}}for(i=m-1;i>0;i--){//打印出空格for(j=0;j<2*m-2*i;j++){printf(" ");}for(j=1;j<=2*i-1;j++){//*号if(j==2*i-1)printf("* \n");else printf("* ");}}
}
整体思路:这道题的主要思路就是找规律,这里需要注意的就是因为每行打印出来的东西都不一样,所以你循环的次数与i就有一定的关系,所以你要找的就是循环次数与i的关系,实际上我们在做这一道题的时候,我也承认这一点,就是我们总是希望一口气把偶数和奇数的全部弄出来,出于这一种目的,我们就情不自禁的去考虑两种情况,但是这样的话,我们不仅要注意奇数,又得注意偶数,这样会导致我们两个规律混杂在一起,导致我们的代码缺少了针对性,实际上将近一个学期的C语言学习,我感受最大的一点就是编程,就是在debug里面寻找正确的答案,你只需要找到一种情况进行分析,然后用变量去表示这些东西,得到的就是普遍规律,实际上我们最好能克服自己特别想一口气吞掉所有东西的这种想法,因为在很大程度上,他会让我们不知道往哪个方向思考,所以我们在看到这道题之后先分析的不是偶数,不是奇数,就是7这一种情况,等到我们用变量表示出来之后我们就发现我们竟解决了普遍问题,也就是分布去做每一道题,这样的效率对于我来说是最高的,今天你学习了吗,彦祖。
习题4-9 打印菱形图案 (15 分)相关推荐
- PTA 7-26 打印菱形图案 (15分)模拟
本题要求编写程序,打印一个高度为n的.由"*"组成的正菱形图案. 输入格式: 输入在一行中给出一个正的奇数n. 输出格式: 输出由n行星号"*"组成的菱形,如样 ...
- 7-59 打印菱形图案 (15 分)
本题要求编写程序,打印一个高度为n的.由"*"组成的正菱形图案. 输入格式: 输入在一行中给出一个正的奇数n. 输出格式: 输出由n行星号"*"组成的菱形,如样 ...
- php编辑菱形图案代码,打印菱形图案 (15 分)
打印菱形图案 (15 分) 本题要求编写程序,打印一个高度为n的.由"*"组成的正菱形图案. 输入格式: 输入在一行中给出一个正的奇数n. 输出格式: 输出由n行星号"* ...
- PTA 7-12 打印菱形图案
7-12 打印菱形图案 (15分) 本题要求编写程序,打印一个高度为n的.由"*"组成的正菱形图案. 输入格式: 输入在一行中给出一个正的奇数n. 输出格式: 输出由n行星号&qu ...
- 实验1-5 输出菱形图案 (5 分)
实验1-5 输出菱形图案 (5 分) 本题要求编写程序,输出指定的由"A"组成的菱形图案. 输入格式: 本题无输入 输出格式: 按照下列格式输出由"A"组成的菱 ...
- 打印菱形图案(C语言实现)
习题4-9 打印菱形图案(C语言实现) 分析:分上下两个三角形打印 #include <stdio.h>int main() {int n,i,j,k;scanf("%d&quo ...
- java打印菱形图案_java打印出菱形图案实例详解
第一步:首先对图像进行解析 想要打印该图形必须要进行多层循环嵌套,分两个部分进行打印. 第一部分为上半部分前四行,他们是递增的关系,后半部分后三行为递减关系,由此可以得出我们需要写两个打的循环.并且由 ...
- 习题4-7 最大公约数和最小公倍数 (15分)
习题4-7 最大公约数和最小公倍数 (15分) 题目描述 本题要求两个给定正整数的最大公约数和最小公倍数. 输入格式: 输入在一行中给出两个正整数M和N(≤1000). 输出格式: 在一行中顺序输出M ...
- 花式打印菱形图案!!
(一).首先我们先来看最简单的打印5行5列 ***** ***** ***** ***** ***** 具体代码如下: /*** 双循环打印菱形图案* * A ** *** BBB * ** **** ...
最新文章
- Uboot初次编译、烧写、启动(启动界面log简析)
- 天津天河计算机技术有限公司,“天河一号”超级计算机落户天津,命名为“天河”,取天津与“银河团队...
- elasticsearch的Linux下安装报错问题解决
- Windows Mobile开发资源相关下载收录
- 深入理解static关键字
- 对已经关闭的的chan进行读写,会怎么样?为什么?
- Illustrator教程,如何在 Illustrator 中创建和应用图案?
- Android Studio 2.0来啦
- gstreamer 1.8.3 编译记录
- 解决python中No module named ‘numpy‘问题
- echar图形使用双Y轴(散点+折线)
- 织梦建站教程dedecms标签调用大全【经典教程】
- 前端实现内网在线excel编辑和word在线编辑相关建议
- 医咖会stata 笔记(自己能看懂版
- excel与access结合运用_access和excel结合应用
- Bonferroni校正法
- 为何两个完全一样的字符串相比较却不一样
- .Net Core 编码规范
- ssh localhost失败:Permission denied (publickey).
- 揭秘微信「看一看」 是如何为你推荐的