打印字母菱形图案

Problem I: 打印字母菱形图案

Time Limit: 1 Sec  Memory Limit: 2 MB
Submit: 633  Solved: 246
[Submit][Status][Web Board]

Description

从键盘输入一个整数n(1≤n≤10),打印出指定的数字图形。

 

Input

正整数n(1≤n≤10)。

Output

指定的数字图形,参看样例。注意最右侧数字后面有空格,直到与最长的一行对齐。

Sample Input

6

Sample Output

          1
        515
      54145
    5431345
  543212345
11111111111
  543212345
    5431345
      54145
        515
          1

HINT

Append Code

用坐标法比较简便!!!!!
#include<stdio.h>
#include<math.h>
int main()
{
    int n,i,j,k;
    scanf("%d",&n);
    for(i=-(n-1); i<=(n-1); i++)
    {
        for(j=-(n-1); j<=(n-1); j++)
        {
            if(i==0||j==0)
                printf("1");
            else if( abs(i) + abs(j) <= (n-1))
                printf("%d",abs(i)+abs(j));
            else
                printf(" ");
        }
        printf("\n");
    }
}
然后贴一下麻烦的!!
#include <stdio.h>
int main()
{
    int n,i,j,k;
    scanf("%d",&n);
    for(i=0; i<n-1; i++)
    {
        for(k=0; k<n-i-1; k++)
        {
            printf(" ");
        }
        for(k=0; k<i; k++)
        {
            printf("%d",n-1-k);
        }
        printf("1");
        for(k=0; k<i; k++)
        {
            printf("%d",n-i+k);
        }
        for(k=0; k<n-i-1; k++)
        {
            printf(" ");
        }
        printf("\n");
    }
    for(i=0; i<2*n-1; i++)
    {
        printf("1");
    }
    printf("\n");
    for(i=0; i<n-1; i++)
    {
        for(j=0; j<i+1; j++)
        {
            printf(" ");
        }
        for(j=0; j<n-2-i; j++)
        {
            printf("%d",n-1-j);
        }
        printf("1");
        for(j=0; j<n-2-i; j++)
        {
            printf("%d",i+2+j);
        }
        for(j=0; j<i+1; j++)
        {
            printf(" ");
        }
        printf("\n");
    }
}
 
发布了28 篇原创文章 · 获赞 4 · 访问量 4832

猜你喜欢

转载自blog.csdn.net/xxw2016/article/details/79127498