编程打印空心菱形
来源:互联网 发布:ubuntu 窗口居中 编辑:程序博客网 时间:2024/05/10 04:07
本题目要求读入菱形起始字母和菱形的高度,然后输出空心字符菱形。所谓“空心菱形”是指:每行由两端为字母、中间为空格的字符串构成,每行的字符串中心对齐;上半部分相邻两行字符串长度差2,且字母从给定的起始字母逐一递增;下半部分与上半部分对称。
输入格式:
输入在一行中给出起始字母(范围为英文大写字母A-G)和菱形的高度(为不超过10的奇数)。
输出格式:
输出空心字符菱形。
输入样例:
B 5
输出样例:
B C CD D C C B
1.首先确定程序的伪代码:(在这个过程你不必一开始就计算出来确切的数字,关键的就是要将最终形成的东西给分开)
读起始字母以及菱形高度
开始循环每一行
第一行打?个空格再打一个起始字母
第二行打?个空格再打加一个的字母再打?个空格再打一个字母
。。。。。。
结束
2.实现自己的伪代码:
打空格我现在是不知道有可以直接打的,所以呢要用for循环,这里就要设置一个打多少个了
我们找到打多少个对应的自变量,或者说找到一个跟它相关的参数,然后很自然想到行数,然后我们就要构造其与行数的关系,可以找个特例先试试,但还要再找一个特例,再最后归纳出具有一般性,这里很容易找到一个线性的函数
同样的再找到打什么样字母的线性关系
代码片:#include<stdio.h>#include<math.h>int abs(int x);int main(){ int n=0,i,j=1; char c='\0'; scanf("%c %d",&c,&n); for(i=1;i<=n;i++) { for(j=1;j<=abs(i-n/2-1);++j){ printf(" "); } if(i<=n/2+1){ printf("%c",c+i-1); } else{ printf("%c",c+n-i); } for(j=1;i>1&&j<=n-2-abs(i-n/2-1)*2&&(i!= n);j++){ printf(" "); } if(i>1&&(i!=n)){ if(i<=n/2+1){ printf("%c",c+i-1); } else{ printf("%c",c+n-i); } } printf("\n"); } return 0;}
本题的变量之间没有太多的牵涉,所以写起来还比较轻松。
加油:)
0 0
- 编程打印空心菱形
- java打印菱形,空心菱形
- 打印菱形和空心菱形
- 打印一个空心菱形
- 打印空心菱形
- PHP 打印空心菱形
- 打印数字空心菱形
- PHP打印空心菱形
- 打印空心菱形
- Java 打印空心菱形
- java 打印 空心菱形
- 打印空心菱形
- 打印空心菱形
- JAVA 打印空心菱形
- JS打印空心菱形
- 打印空心菱形
- 打印空心菱形
- 控制台打印空心菱形
- pidstat命令
- redis哨兵(sentinel)原理
- bzoj4574: [Zjoi2016]线段树
- 【数据结构学习】线性表List
- IPC机制第一篇,使用Messenger
- 编程打印空心菱形
- 出差A2
- ContentProvider跨APP读取数据失败
- 如何使导航栏水平居中
- 【数据结构】算法6.1-6.4 遍历二叉树
- 【UVA 10791】最小公倍数的最小和
- Yarn个人总结
- 【神经网络与深度学习】YOLO windows 配置《Darknet配置》
- 【政治学】:一些想法