栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

0011字母图形

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

0011字母图形

问题描述

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

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'时,就会递加输出字母

#include 

int 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;
}

废案 

#include 

int 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;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/630384.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号