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