思路
这个题也就只能恶心一次,恶心不到第二次,将菱形分为上下两瓣,一个变量控制多少行,一个变量控制输出多少空格,一个变量输出星号,后面两个变量都依赖于第一个变量,上代码
//输出一个菱形
void fun14() {
//变量i控制行数,一共是4行
for (int i = 1; i <= 4; i++)
{
//控制空格,空格分别是3 - 2 - 1 所以就是 4 - i 以i为参照物
for (int j = 1; j <= 4 - i; j++)
{
printf(" ");
}
//控制星号,分别是1 - 3 - 5 - 7 可以看做为2 * i - 1 还是以i为参照物
for (int k = 0; k < 2 * i - 1; k++)
{
printf("*");
}
//换行
printf("\n");
}
//这个底下也差不多
for (int i = 1; i <= 3; i++)
{
//空格是 1 2 3 刚好就是i的值
for (int j = 1; j <= i; j++)
{
printf(" ");
}
//星号是 5 - 3 - 1 i为1的时候 如何得到5呢? 7 - 1 * 2 直接套公式 没意思
for (int k = 1; k <= 7 - i * 2; k++)
{
printf("*");
}
printf("\n");
}
}
变种题
这个变种题跟菱形差不多,搞懂了菱形 这个就没有什么问题
// 树形数字
void fun15() {
//一样的 控制行数 9行
for (int i = 1; i <= 9; i++)
{
//以i为参照物, 8 - 7 - 6 - 5 ... 行数 - i
for (int j = 1; j <= 9 - i ; j++)
{
printf(" ");
}
// 1 3 5 7 i * 2 -1
for (int k = 1; k <= i * 2 - 1 ; k++)
{
//这里就直接输出i了
printf("%d", i);
}
printf("\n");
}
}
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容