编写一个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");
}
}