L1-054 福到了 题解

这道题的坑点主要就在读入字符后要接受换行,如果是用char来读入,必须要注意getchar()的使用;如果使用getline()来读入字符串,可以自动处理结束时的换行,但在刚开始输入时,要键入数字后面的换行符。还有就是注意倒置输出的操作和判断是否需要倒置

L1-054 福到了
在这里插入图片描述
输入样例:

$ 9
 @  @@@@@
@@@  @@@ 
 @   @ @ 
@@@  @@@ 
@@@ @@@@@
@@@ @ @ @
@@@ @@@@@
 @  @ @ @
 @  @@@@@

输出样例:

$$$$$  $ 
$ $ $  $ 
$$$$$ $$$
$ $ $ $$$
$$$$$ $$$
 $$$  $$$
 $ $   $ 
 $$$  $$$
$$$$$  $ 

输入样例:

& 3
@@@
 @ 
@@@

输出样例:

bu yong dao le
&&&
 & 
&&&

#include <iostream> 
#include <string>
const int N =105;
using  namespace std;

char ch;
int n;

int main()
{

	cin >> ch >> n;
	
	getchar();//键入数字后的换行符 
	
	string s[n];
	for(int i = 0; i < n; i ++ )
	{
		getline(cin, s[i]);//getline自动处理本次结束时的换行,防止对下次的getline函数造成影响
	}
	
	bool flag = true;
	
	for(int i = 0; i < n; i ++ )
	{
		for(int j = 0; j < n; j++ )
		{
			//判断倒放前后是否一致 
			if(s[i][j] != s[n - 1 - i][n - 1 - j])//d - 1为数组右下角坐标 
			{//不一致时 
				flag = false;
			//break;
			} 
		}
	}
	
	if(flag) cout << "bu yong dao le" << endl; 
	
	//输出倒过来的结果 
	for(int i = n - 1; i >= 0; i-- )
	{
		for(int j = n - 1; j >= 0; j-- )
		{
			if(s[i][j] == '@') cout << ch; //循环如果是递增的, 这里就是s[n - 1 -i][n - 1 - j] 
			else cout << " ";
		}	
		cout << endl;	
	}
	return 0;		
}

当然也可以使用vector来初始化数组成为空格;

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值