废话偏多

一个渴望使未来更好的大三学生做的一点点小小努力

CSDN四川大学线下编程比赛第二题:Peter的X

四川大学线下编程比赛第二题:Peter的X

题目详情:

Peter是个小男孩,他总是背不清26个英文字母。于是,刁钻的英语老师给他布置了一个非常奇怪的作业,老师给了他一个由26个英文字母构成的N*N 的矩阵(我们保证N一定是一个奇数),问他这个矩阵构成的图案是否是一个标准的“X”。

一个标准的X的定义:1、对角线上所有元素都是同一个字母。2、所有非对角线上的元素也都是同一个字母,且字母与对角线上的字母不同。

如果是则输出“YES”,否则输出“NO”。

输入描述:

多组测试数据(数据量在100组以内)。每组测试数据第一行为一个整数N(1<=N<=300),表示表格的大小。

下面是N行是一个由字母构成的N*N的矩阵。

输出描述:


对于每组输入数据,输出一行“YES”或“NO”。

答题说明:

输入样例:

5

xooox

oxoxo

soxoo

oxoxo

xooox

3

wsw

sws

wsw

3

xpx

pxp

xpe

输出样例:


NO

YES

NO


题目很简单,不过第一次做的时候寝室很吵没心思做但已有思路,于是早上起来花时间做了,在自己机器上是对的呀,可是提交到CSDN平台就有错误,不明白为什么,希望有高手可以指出

#include<stdio.h>
#include<string.h>
int main()
{
	int n;
	while(scanf("%d",&n)!=EOF){
	int i,j;
	char a[300][300];
	char c[300],d[300],x=0,y=0;
	char c1[300],d1[300];
	int clen=0,dlen =0;
	int val=1;
	for(i=0;i<n;i++)
		for(j=0;j<=n;j++)
			scanf("%c",&a[i][j]);
	/*for(i=0;i<n;i++)
		for(j=0;j<=n;j++)
			printf("%c",a[i][j]);*/
	for(i=0;i<n;i++)
		for(j=0;j<=n;j++)
		{
			if(i==j||i==(n-1-j))
				c[x++]=a[i][j];
			else 
				d[y++]=a[i][j];
			}
	j = 0;
	for(i=0;i<=n*n;i++)
		if(c[i]!='\n')
			c1[j++]=c[i];
	j = 0;
/*	for(i=0;i<=n*n;i++)
		if(d[i]!='\n')
			d1[j++]=d[i];
	printf("%s,%s",c1,d1);*/
	clen = strlen(c1);
	dlen = strlen(d1);
	//printf("%d,%d",clen,dlen);	
	for(i= 0;i<clen;i++)
		if(c1[0]!=c1[i])
		val=0;
	for(j = 0;j<dlen;j++)
		if(d1[0]!=d1[j])
		val=0;
if(d1[0]==c1[0])
		val=0;
if(val==1)
	printf("YES\n");
else
	printf("NO\n");	
	}
return 0;		
		    
	
}


阅读更多
版权声明:转载请注明出处 https://blog.csdn.net/u011327334/article/details/39717561
文章标签: c 语言 编程
个人分类: 算法
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

CSDN四川大学线下编程比赛第二题:Peter的X

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭