这道题,属于模拟题。按照题目做。但是一定要注意,两条对角线上的字母不能和其他位置的字符相同。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define SIZE 305
char letter[SIZE][SIZE];
char diag,other;
int nasce,ans;
int main()
{
while(scanf("%d",&nasce) != EOF)
{
ans = 1;
getchar();
for(int i = 1; i <= nasce; i++)
{
for(int j = 1; j <= nasce; j++)
{
scanf("%c",&letter[i][j]);
if((i == 1) && (j == 1))
diag = letter[i][j];
else
if((i == j) || (j == (nasce - i + 1)))
{
if(letter[i][j] != diag)
ans = 0;
}
else
if((i == 1) && (j == 2))
other = letter[i][j];
else
if(letter[i][j] != other)
ans = 0;
}
getchar();
}
if(ans && (diag != other))
printf("YES\n");
else
printf("NO\n");
}
return 0;
}
本文介绍了一种通过检查矩阵中对角线上的字符是否一致来判断矩阵是否符合条件的方法。该程序使用C++编写,主要关注对角线元素的一致性与其他位置元素的区别。
859

被折叠的 条评论
为什么被折叠?



