空心菱形* (10 分)请编写程序,输出空心菱形。
Posted 增删查改农民工
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了空心菱形* (10 分)请编写程序,输出空心菱形。相关的知识,希望对你有一定的参考价值。
请编写程序,输出空心菱形。
输入格式
行数(正整数)
输出格式
若行数为奇数,则显示由星号勾勒出的空心菱形,否则显示错误信息。
输入样例1
5
输出样例1
*
* *
* *
* *
*
输入样例2
8
输出样例2
Error
不考虑其他的函数,纯纯的来分析一波
#include<stdio.h>
int main()
int l,h1;
scanf("%d", &l);
if (l % 2 == 0)
printf("Error");
return 0;
//排除偶数的情况
int h = 1;
int ch = 1;
int mid;
mid = (l + 1) / 2;
h1 = (l - 1) / 2;
int k = 1;
int k1 = 1;
for (;h<=mid;h++) //此为行循环
ch = h;
for (;1<=mid-ch;ch++)
printf(" ");
//
printf("*");//稳定输出第一个*
k = 1;
if (h != 1) //首行不输出第二个*
for (; k <= k1; k++)
printf(" ");
k1 += 2;
printf("*");//第二行后,空格规律为1,3,5...
printf("\\n");
//上,中部分菱形完成
k1 -= 4;//k1进行削减,更改规律为...5,3,1。
h = mid - 1;//行数比上中和少一
for (; 1 <= h; h--)
ch = h;
for (; 1 <= mid - ch; ch++)
printf(" ");
printf("*");
k = 1;
if (h != 1)
for (; k <= k1; k++)
printf(" ");
k1 -= 2;
printf("*");
printf("\\n");
return 0;
用h1和k1前后反转的变化来实现逆序
多观察,多研究内部规律
以上是关于空心菱形* (10 分)请编写程序,输出空心菱形。的主要内容,如果未能解决你的问题,请参考以下文章