宾果检查(0007)
2023-12-22 17:08:28
题意
输入5*5个元素,如果有5个”x“连成一条线,就返回"True",否则返回”False“
输入
37 16 84 51 33
64 12 47 32 90
x x x x x
67 19 98 39 44
21 75 24 30 52
输出
True
代码
#include<bits/stdc++.h>
using namespace std;
const int N=10;
string lst[N][N];
int row[N],col[N],a,b;
bool check()
{
for(int i=1;i<=5;i++)
{
for(int j=1;j<=5;j++)
{
if(lst[i][j]=="x")
{
row[i]++;
col[j]++;
if(i==j) a++;
if(i+j==6) b++;
}
}
}
for(int i=1;i<=5;i++)
{
if(row[i]==5||col[i]==5) return true;
}
if(a==5||b==5) return true;
return false;
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
for(int i=1;i<=5;i++)
{
for(int j=1;j<=5;j++)
{
cin>>lst[i][j];
}
}
bool res=check();
string ans=res?"True":"False";
cout<<ans<<endl;
return 0;
}
总结
1.不太会用vector,用正常的数组可以代替
2.a表示的是从左上到右下的对角线,b表示的是从左下到右上的对角线
希望程设能过
3.有时候自己分不清楚具体数字的时候,不妨从1开始存,或者举一个特例来帮助确定式子
从左下到右上的对角线的公式的确定
4.全局变量的话,函数可以直接调用,比较方便,比如说这里的
string lst[][],row[],col[],a,b;
//怎么没有高亮呢(恼
文章来源:https://blog.csdn.net/L3102250566/article/details/135154998
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!