问题描述
利用字母可以组成一些美丽的图形,下面给出了一个例子:
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形
输入格式
输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数
输出格式
输出n行,每个m个字符,为你的图形
样例输入
5 7
样例输出
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
数据规模与约定
1 <= n, m <= 26
规律不难发现,第一列的数都是'A'加上行数-1
之后,它们会依次递减输出字母
直到碰到'A'时,就会递加输出字母
#includeint main() { int m,n,r,c,flag; char ch; scanf("%d%d",&n,&m); for(r=1;r<=n;r++)//行循环 { ch='A'+r-1;//图形每行首项都是'A'+加上行数-1 for(c=1;c<=m;c++)//列循环 { if(ch=='A')//遇到'A',则一直递增输出 { for(;c<=m;c++) { printf("%c",ch++); } } else//没遇到则一直递减输出 { printf("%c",ch--); } } printf("n"); } return 0; }
废案
#includeint main() { int m,n,r,c,flag;//flag用来记录在列循环中ch是否有变化为'A' char ch; scanf("%d%d",&n,&m); for(r=1;r<=n;r++)//行循环 { ch='A'+r-1;//图形每行首项都是'A'+加上行数-1 flag=0; for(c=1;c<=m;c++)//列循环 { printf("%c",ch); if(flag==1||ch=='A')//当ch为'A'时或在列循环中曾经为'A'时 { flag=1;//把flag标记为1说明ch现在是或曾经是'A' ch++;//此情况ch++ } if(ch!='A'&&flag==0) { ch--;//此情况ch-- } } printf("n"); } return 0; }



