记忆深刻的菱形结构
2014-10-17 22:18
232 查看
今天在写作业,在前几道题中,都没什么压力就做出来了,但到用循环结构输出菱形结构是,我就彻底蒙了,实心的菱形还可以,想了一会后做出来了,但后面又有一个空心的菱形,这道题真是让我想破了头皮,为了以后能随时复习这道题,这里我把这道题的答案写在这
6. (****)输入n,分别用*输出边长为n的实心菱形和空心菱形。
// 例如:n = 3时,输出:
// *
// ***
// *****
// ***
// *
//
//上三角
//行数 空格数
星号数
换行
//1 2 1 1
//2 1 3 1
//3 0 5 1
//空格与行数的关系是:空格 = n(边长) -行数
//星号与行数的关系是:星号 =
行数*2 - 1
//换行始终是一个
int n = 0;
printf("请输入一个边长,我们将为你打印n边菱形:");
scanf("%d",&n);
for (int i = 1; i <= n; i++) {
//打印空格
for (int j = 0; j < n - i; j++) {
printf(" ");
}
//打印星号
for (int k = 0; k < 2 * i - 1; k++) {
printf("*");
}
//打印换行
printf("\n");
}
//下三角
//行数 空格数
星号数
换行
//1 1 3 1
//2 2 1 1
//空格与行数的关系是:空格 =
行数
//星号与行数的关系是:星号 = (n -
行数)*2 - 1
//换行始终是一个
for (int i = 1; i < n; i++) {
//打印空格
for (int j = 0; j < i; j++) {
printf(" ");
}
//打印星号
for (int k = 0; k < (n - i) * 2 - 1; k++) {
printf("*");
}
//打印换行
printf("\n");
}
// *
// * *
// * *
// * *
// *
printf("\n");
//上三角
//行数 空格数
星号数空格数
星号数换行
//1 2 1 0 0 1
//2 1 1 1 1 1
//3 0 1 3 1 1
//前面空格与行数的关系是:空格 = n(边长) -行数
//星号与行数的关系是:星号 = 1
//中间空格与行数的关系是:空格 = (行数-1) * 2 -1
//后面星号行数为1的时候,0个,行数不为1的时候1个
//换行始终是一个
for (int i = 1; i <= n; i++) {
//打印前面空格
for (int j = 0; j < n - i; j++) {
printf(" ");
}
//打印前面星号
printf("*");
//打印中间空格
for (int k = 0; k < (i - 1)*2 -1; k++) {
printf(" ");
}
//打印后面星号
if (i != 1) {
printf("*");
}
//打印换行
printf("\n");
}
//下三角
//行数 空格数
星号数
空格数 换行
//1 1 1 3 1
//2 2 1 1 1
//3 3 1 0 1
//空格与行数的关系是:空格 =
行数
//星号与行数的关系是:星号 = 1
//空格与行数的关系是:空格 = (n -
行数 - 1)*2 - 1
//星号与行数的关系是:如果行数等于n-1,那*是0,否则是1
//换行始终是一个
for (int i = 1; i < n; i++) {
//打印前面空格
for (int j = 0; j < i; j++) {
printf(" ");
}
//打印星号
printf("*");
//打印中间空格
for (int k = 0; k < (n-1-i)*2 -1; k++) {
printf(" ");
}
//打印后面星号
if (i != n-1) {
printf("*");
}
//打印换行
printf("\n");
}
这是借鉴大神的做法,可以在以后的复习中能够一目了然,这道题本来不是那么难的但是相当复杂,如果静下心来,还是可以攻破的.
6. (****)输入n,分别用*输出边长为n的实心菱形和空心菱形。
// 例如:n = 3时,输出:
// *
// ***
// *****
// ***
// *
//
//上三角
//行数 空格数
星号数
换行
//1 2 1 1
//2 1 3 1
//3 0 5 1
//空格与行数的关系是:空格 = n(边长) -行数
//星号与行数的关系是:星号 =
行数*2 - 1
//换行始终是一个
int n = 0;
printf("请输入一个边长,我们将为你打印n边菱形:");
scanf("%d",&n);
for (int i = 1; i <= n; i++) {
//打印空格
for (int j = 0; j < n - i; j++) {
printf(" ");
}
//打印星号
for (int k = 0; k < 2 * i - 1; k++) {
printf("*");
}
//打印换行
printf("\n");
}
//下三角
//行数 空格数
星号数
换行
//1 1 3 1
//2 2 1 1
//空格与行数的关系是:空格 =
行数
//星号与行数的关系是:星号 = (n -
行数)*2 - 1
//换行始终是一个
for (int i = 1; i < n; i++) {
//打印空格
for (int j = 0; j < i; j++) {
printf(" ");
}
//打印星号
for (int k = 0; k < (n - i) * 2 - 1; k++) {
printf("*");
}
//打印换行
printf("\n");
}
// *
// * *
// * *
// * *
// *
printf("\n");
//上三角
//行数 空格数
星号数空格数
星号数换行
//1 2 1 0 0 1
//2 1 1 1 1 1
//3 0 1 3 1 1
//前面空格与行数的关系是:空格 = n(边长) -行数
//星号与行数的关系是:星号 = 1
//中间空格与行数的关系是:空格 = (行数-1) * 2 -1
//后面星号行数为1的时候,0个,行数不为1的时候1个
//换行始终是一个
for (int i = 1; i <= n; i++) {
//打印前面空格
for (int j = 0; j < n - i; j++) {
printf(" ");
}
//打印前面星号
printf("*");
//打印中间空格
for (int k = 0; k < (i - 1)*2 -1; k++) {
printf(" ");
}
//打印后面星号
if (i != 1) {
printf("*");
}
//打印换行
printf("\n");
}
//下三角
//行数 空格数
星号数
空格数 换行
//1 1 1 3 1
//2 2 1 1 1
//3 3 1 0 1
//空格与行数的关系是:空格 =
行数
//星号与行数的关系是:星号 = 1
//空格与行数的关系是:空格 = (n -
行数 - 1)*2 - 1
//星号与行数的关系是:如果行数等于n-1,那*是0,否则是1
//换行始终是一个
for (int i = 1; i < n; i++) {
//打印前面空格
for (int j = 0; j < i; j++) {
printf(" ");
}
//打印星号
printf("*");
//打印中间空格
for (int k = 0; k < (n-1-i)*2 -1; k++) {
printf(" ");
}
//打印后面星号
if (i != n-1) {
printf("*");
}
//打印换行
printf("\n");
}
这是借鉴大神的做法,可以在以后的复习中能够一目了然,这道题本来不是那么难的但是相当复杂,如果静下心来,还是可以攻破的.
相关文章推荐
- 通俗易懂,记忆深刻的cookie和session的理解
- 记忆深刻的一段简单代码_winvay
- 有些人让我记忆深刻
- Delphi接口的底层实现(接口在内存中仍然有其布局,它依附在对象的内存空间中,有汇编解释)——接口的内存结构图,简单清楚,深刻 good
- 计算出一段英文中出现频率最高的单词(第一次面试时没做出来,现在都记忆深刻)
- 长短时记忆网络(LSTM)的内部结构详解以及基于python 的实现案例
- c++单继承、多继承、菱形继承的内存布局(虚函数表结构)
- 【C++】c++单继承、多继承、菱形继承内存布局(虚函数表结构)
- 一场令人记忆深刻的面试
- 【C++】c++单继承、多继承、菱形继承内存布局(虚函数表结构)
- 关于内存泄露-深刻的记忆和教训-2012.12.05
- java-第九章-循环结构进阶-输入行数,打印菱形
- 菱形结构的多重继承
- C#本质论第四版-1,抄书才能看下去,不然两三眼就看完了,一摞书都成了摆设。抄下了记忆更深刻
- C++对象布局及多态探索之菱形结构虚继承
- 设计心理学读书笔记 之一 记忆的结构
- 一首记忆深刻的诗:《昭君出塞》
- 深刻理解hive分区,分区只是一种逻辑结构
- 用户记忆设计:如何设计印象深刻的用户体验 | Viget
- 感谢那些编程过程中记忆深刻的低级错误