天天看點

編寫一個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");

 }

}