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