天天看點

Martix工作室考核題 —— 列印一個菱形

代碼

#include<stdio.h>                           /*列印菱形圖案*/
int main (void)
{
	int n,j,i;                              /*i為行數,j為每行中的項數*/
	printf("(n為奇數)輸入圖案高度n:");
	scanf("%d",&n);
	if (n<=0||n%2==0)                        /*判斷n輸入正誤*/
		printf("輸入錯誤!");
	else
	{
		for(i=1;i<=n/2+1;i++)               /*列印上三角,(包括中間行)*/
		{
			for(j=1;j<=n/2+i;j++)       
			{
				if(j>=n/2-i+2)
					printf(" *");
				else
					printf("  ");
			}
			printf("\n");
		}
		for(i=n/2;i>=1;i--)               /*列印下三角,(不包括中間行)*/
		{                             /*将i改為倒序,這樣就不必再次考慮每行中項的列印,下個for循環可以直接複制上三角部分*/
			for(j=1;j<=n/2+i;j++)         /*這個for循環與上三角一緻 */
				if(j>=n/2-i+2)
					printf(" *");
				else
					printf("  ");
			printf("\n");
		}
	}
	return 0;
}