C 练习实例23
题目:打印出如下图案(菱形)。
* *** ***** ******* ***** *** *
程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重for循环,第一层控制行,第二层控制列。
程序源代码:
实例
// Created by www.runoob.com on 15/11/9.
// Copyright © 2015年 菜鸟教程. All rights reserved.
//
#include <stdio.h>
int main()
{
int i,j,k;
for(i=0;i<=3;i++) {
for(j=0;j<=2-i;j++) {
printf(" ");
}
for(k=0;k<=2*i;k++) {
printf("*");
}
printf("\n");
}
for(i=0;i<=2;i++) {
for(j=0;j<=i;j++) {
printf(" ");
}
for(k=0;k<=4-2*i;k++) {
printf("*");
}
printf("\n");
}
}
以上实例输出结果为:
* *** ***** ******* ***** *** *
红途
471***417@qq.com
参考解法:
红途
471***417@qq.com
fairyice
202***9997@qq.com
参考方法:
fairyice
202***9997@qq.com
Xipron
153***179@qq.com
参考方法:
Xipron
153***179@qq.com
Andy Wayne
and***ayne@foxmail.com
参考方法:
Andy Wayne
and***ayne@foxmail.com
内拉小付
fux***afx@163.com
参考方法:
内拉小付
fux***afx@163.com
TSD
210***2129@qq.com
参考方法:
TSD
210***2129@qq.com
HIT_CCC
117***2963@qq.com
参考方法:
HIT_CCC
117***2963@qq.com
huanhuan
992***291@qq.com
找到行数与列数之间的关系可以更好的简化程序。
参考方法:
huanhuan
992***291@qq.com
JCGZ1314520
JCG***1452@163.COM
利用等差数列:
JCGZ1314520
JCG***1452@163.COM
侯白丁
534***947@qq.com
利用坐标系;
横向 i 轴,左到右递增,纵向 j 轴,上到下递增。
将所有的 * 取点得到一个坐标系上菱形的区域 ,菱形区域的四个顶点分别为(3,0)、(0,3)、(6,3)、(3.6),得到四条直线围成的区域,四条直线的 i,j 关系分别是:
题所求 * 即为四条直线围成区域内以及边界上的点;该区域内的点满足以下条件:
根据以上四个条件进行遍历;
侯白丁
534***947@qq.com