题解洛谷P6321(c++解法)[COCI2006-2007#4] SKENER

   日期:2020-05-06     浏览:114    评论:0    
核心提示:题意首先,输入四个数;前两个是报纸的行数、列数,后两个是放大镜的两个“参数”(具体后面会讲)。让后,c/c++

题目传送门

题意

首先,输入四个数;前两个是报纸的行数、列数,后两个是放大镜的两个“参数”(具体后面会讲)。
让后,按行数 r、列数 c 输入一个字符矩阵。
这里我们就要想到:用二维数组
让后,我们要按题目要求,把每一个小字符“放大”。
那这里什么叫放大呢?
题目解释: 把每个字符都转换成一个 zr 行 zc 列的矩阵。
实际上就是:把原来的每一个字符复制zr行、复制zc列!
但单个字符作矩阵输出是不现实的(程序按行输出)。
所以我们想到:用四重循环!
我们要输出的,是由原来的字符组成的许多矩阵。
其中的m、l只是用于控制放大行数、列数的,不能用作输出字符!
输出工作应交给其中的i,j 。
如果你上面都懂了,那这道题也差不多A了。
代码来了:

#include<bits/stdc++.h>
using namespace std;
char a[55][55];
int main () {
	int r,c,zr,zc;//老老实实按题目定义 
	cin>>r>>c>>zr>>zc;//r:原行数 c:原列数 zr:放大行数 zc放大列数 
	for(int i=1;i<=r;++i){
		for(int j=1;j<=c;++j){
			cin>>a[i][j];
		}
	}//常规二维数组输入
	for(int i=1;i<=r;i++){//四重循环 
		//这里控制原行数 
		for(int m=1;m<=zr;m++){
			//枚举放大后的行数 
			for(int j=1;j<=c;j++){
				//这里控制原列数 
				for(int l=1;l<=zc;l++)//枚举放大后的列数 
					putchar(a[i][j]);//输出 (快捷) 
			}	
			printf("\n");//换行位置很重要 (在这一行所有列的字符输完 后再换行) 
		}
	}		
    return 0;
}
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服