基础练习 字母图形

Posted shawu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基础练习 字母图形相关的知识,希望对你有一定的参考价值。

问题描述

利用字母可以组成一些美丽的图形,下面给出了一个例子:

ABCDEFG

BABCDEF

CBABCDE

DCBABCD

EDCBABC

这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。

输入格式
输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。
输出格式
输出n行,每个m个字符,为你的图形。
样例输入
5 7
样例输出
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
数据规模与约定
1 <= n, m <= 26。
代码:

#include <stdio.h>
#include <stdlib.h>
int main() {
int m,n,i,j,k;
scanf("%d %d",&n,&m);
for(i=0;i<n;i++)
{
for(j=i;j>0&&i-j<m;j--)
printf("%c",65+j);
for(k=0;k<m-i;k++)
printf("%c",65+k);
printf(" ");
}
return 0;
}

思考:
忘了ASCⅡ码的输出 刚刚查了一下格式为%c  c1(即代码如65)
第一次尝试了嵌套循环里面输出65+j 发现输出的是七个字母递减 结果非题目要求(X)
也是想的很复杂开始。。虽然看出来了前面倒序后面正序 但想的是以数组的形式+if来判断啥时候改成正序
写到第四层循环的时候放弃了。。。开始怀疑有问题
结果百度一下才注意到分界点就是行数 dbq我小学没有学找规律5555
知道行数是边界就很快 一个行的for里嵌套一个逆一个正的for输出就好
需要注意的是边界条件确定 倒序的除开自己的条件还要考虑正序列的大小(i-j<m)(ps:这里有坑到我otz
正序的话我一开始陷入了前面的固定思维 想着一个串接后半部分从中间开始走 初始定的i+1 有些wrong?后面一看嗨呀直接再写个0开头的串了事 反正无空格符哈两个for
这个故事告诉我们脑筋急转弯应该成为程序员的童年必备读物(bushi
 

以上是关于基础练习 字母图形的主要内容,如果未能解决你的问题,请参考以下文章

基础练习-3.字母图形

基础练习 字母图形

蓝桥杯- 基础练习:字母图形

蓝桥杯 基础练习 字母图形

蓝桥杯- 基础练习 字母图形

蓝桥杯 基础练习1