空心菱形* (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前后反转的变化来实现逆序

多观察,多研究内部规律

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码

)">
< <上一篇
下一篇>>