OpenJudge09:字符菱形

1.1编程基础之输入输出
09:字符菱形
总时间限制: 1000ms 内存限制: 65536kB
描述
给定一个字符,用它构造一个对角线长5个字符,倾斜放置的菱形。

输入
输入只有一行, 包含一个字符。
输出
该字符构成的菱形。
样例输入

*

样例输出

  *
 ***
*****
 ***
  *

实现代码:
1、寻找规律

#include
#define N 5 //菱形的行数
int main(void)
{
char a;
int i,j,n;
scanf("%c",&a); //输入要呈现的符号
for(i=1;i<=N;i++)
{  
	n=(N/2+1);//n为菱形的正中间一行的位置
	if(i<=n)//当i处于上面的三角形时
	{	
	while(1)
	{   
	  if(n-i>0)
	    {
		printf(" ");//先输出第i行前面的空格,每一行的空格为n-i个
		n--;
	    }
	  else break;
	}
	for(j=1;j<=2*i-1;j++)//再输出第i行的符号,每行个数为2*i-1个
	   printf("%c",a);
	}
	else     //同理当i处于下面的三角形时
	{
	while(1)
	{   
	    if(i-n>0) //每行的空格为i-n个
		{
		   printf(" ");
		   n++;
		}
	    else break;
	}
	for(j=1;j<=2*(N-i)+1;j++)//输出第i行的符号,每行个数为2*(N-i)+1个
           printf("%c",a);
	}
	   printf("\n");//每一行结束后输出一个换行
	}		
	
	return 0;
}

2、简单但比较笨拙的方法

#include "iostream"
using namespace std;
int main()
{
    char a;
    cin>>a;
    cout<<"  "<<a<<endl;
    cout<<" "<<a<<a<<a<<endl;
    cout<<a<<a<<a<<a<<a<<endl;
    cout<<" "<<a<<a<<a<<endl;
    cout<<"  "<<a<<endl;
    return 0;
}

你可能感兴趣的:(OpenJudge)