joj2318

  2318: Diamond
ResultTIME LimitMEMORY LimitRun TimesAC TimesJUDGE
3s16384K1552578Standard

Draw a diamond shape with character '*'.

Input

There are several lines in the input, each line is a integer N(N<100), N is zero means the end of input.

Output

For each line of input, draw a diamond whose width is N like sample. Notice there is no unnecessary spaces after '*' in the same line.

Output a blank line after each case.

Sample Input

3
0

Sample Output

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

 

/* 本人代码: #include<iostream> #include<string> using namespace std;

int main() {     int i, n;  while(cin>>n,n)  {   for(i=1;i<n;i++)   {     cout<<string((n-i),' ');        cout<<string(2*i-1,'*')<<endl;      }   for(i=n;i>=1;i--)   {     cout<<string((n-i),' ');        cout<<string(2*i-1,'*')<<endl;      }   cout<<endl;  }    return 0; }*/

#include<stdio.h> #include<memory.h> char s1[201],s2[201]; int main() {  int n,i,p,k,temp,x,y;  memset(s1,' ',sizeof(s1));  memset(s2,'*',sizeof(s2));  s1[200]=s2[200]='\0';  while(scanf("%d",&n),n)  {   k=n*2-1;   for(i=1,p=n-1;i<=k;i++,p--)   {    x=p>0?p:-p;    temp=i<n?n-i:i-n;    y=(n-temp)*2-1;    printf("%s",s1+200-x);    puts(s2+200-y);   }   putchar('\n');  }  return 0; }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值