空心菱形* (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 分)请编写程序,输出空心菱形。的主要内容,如果未能解决你的问题,请参考以下文章

编写java程序,应用for循环打印菱形。

用java打印菱形。

for循环输出空心菱形的形状java

第12周编程总结

第十二周编程总结

C语言硬核编程之勾勒空心菱形