天天看点

编写一个C程序,它能读入一个正整数n(09时用ABCD…Z补

编写一个C程序,它能读入一个正整数n(0<n<35),并能打印如下图形,其中最下层为1,最上层为2n-1个n对应的数字。n>9时用ABCD…Z补。如打印的图形可以为:

……………………………………………

 BBBBB……………BBBBB

  AAAAA………AAAAA

   999……………999

………………………

33333

 222

  1

程序的功能要求如下:

输入一个正整数n,0<n<35,非法则退出;

#include<stdio.h>

void main()

{

 int n,i,j,k,m;

 printf("请输入一个0-35之间的数字:/n");

 scanf("%d",&n);

 if(n<10)          //当输入n小于10时的情况

 {

  for(i=1;i<=n;i++)

  {

   for(k=1;k<i;k++)                       //控制空格数

   {

    printf(" ");

   }

   for(j=1;j<=2*n-2*i+1;j++)

   {

    printf("%d",n-i+1); 

   }

   printf("/n");

  }

 }

 else if(n<20)          //当输入10<=n<20的情况

  {

   m=n%10+1;

   for(i=1;i<=n-9;i++)       //输出10到n的部分

   {

    for(k=1;k<i;k++)     //控制空格数

    {

     printf(" ");

    }

    for(j=1;j<=2*n-2*i+1;j++)

    {

     printf("%c",m+65-i);

    }

    printf("/n");

   }

   for(i=1;i<=9;i++)       //输出9-0的部分

   {

    for(k=1;k<i+m;k++)     //控制空格数

    {

     printf(" ");

    }

    for(j=1;j<=19-2*i;j++)    //控制每行的字母个数

    {

     printf("%d",10-i); 

    }

    printf("/n");

   }

  }

 else if(n<30)         //当输入20<=n<30的情况

 {

  m=n%10;

  for(i=1;i<=n-19;i++)       //输出20到n的部分

  {

   for(k=1;k<i;k++)      //控制空格数

   {

    printf(" ");

   }

   for(j=1;j<=2*n-2*i+1;j++)     //控制每行的字母个数

   {

    printf("%c",m+76-i);

   }

   printf("/n");

  }

  for(i=1;i<=10;i++)       //输出10到19的部分

   {

    for(k=1;k<=n+i-20;k++)    //控制空格数

    {

     printf(" ");

    }

    for(j=1;j<=39-2*i;j++)    //控制每行的字母个数

    {

     printf("%c",75-i);

    }

    printf("/n");

   }

   for(i=1;i<=9;i++)       //输出9-0的部分

   {

    for(k=1;k<n+i-9;k++)    //控制空格数

    {

     printf(" ");

    }

    for(j=1;j<=19-2*i;j++)    //控制每行的字母个数

    {

     printf("%d",10-i); 

    }

    printf("/n");

   }

 }

 else if(n<36)         //当输入30<n<36的情况

 {

  m=n%10;

  for(i=1;i<=n-29;i++)       //输出29以后的部分

  {

   for(k=1;k<i;k++)      //控制空格数

   {

    printf(" ");

   }

   for(j=1;j<=2*n-2*i+1;j++)    //控制每行的字母个数

   {

    printf("%c",m+86-i);

   }

   printf("/n");

  }

  for(i=1;i<=20;i++)        //输出29到10的部分

  {

   for(k=1;k<i+n-29;k++)     //控制空格数

   {

    printf(" ");

   }

   for(j=1;j<=59-2*i;j++)     //控制每行的字母个数

   {

    printf("%c",85-i);

   }

   printf("/n");

  }

  for(i=1;i<=9;i++)        //输出9-0的部分

   {

    for(k=1;k<n+i-9;k++)    //控制空格数

    {

     printf(" ");

    }

    for(j=1;j<=19-2*i;j++)    //控制每行的字母个数

    {

     printf("%d",10-i); 

    }

    printf("/n");

   }

 }

 else

 {

  printf("输入的数字不符合要求/n");

 }

}