算法提高 9-1九宫格

/*


问题描述
九宫格。输入1-9这9个数字的一种任意排序,构成3*3二维数组。如果每行、每列以及对角线之和都相等,
打印1。否则打印0。
样例输出
与上面的样例输入对应的输出。
例:
数据规模和约定
输入1-9这9个数字的一种任意排序。

*/

#include <stdio.h>
void shuru(int [][3] , int );
int shuchu(int [][3] , int );
void q_hh(int [][3] , int, int [] ) ;
void q_lh(int [][3] , int, int [] ) ;

int main(void) 
{
	int jgg[3][3];
	shuru(jgg , 3);
	printf("%d\n",shuchu(jgg , 3 ) );
	return 0;
}
void q_lh(int jgg[][3] , int n , int he[] )
{
	int i;
	for(i = 0 ; i < n; i ++)
	{
		int j;
		for( j = 0 ; j < n ; j ++)
		{
			he[i+3]+=jgg[j][i];
		}
	}
}

void q_hh(int jgg[][3] , int n , int he[] )
{
	int i;
	for(i = 0 ; i < n; i ++)
	{
		int j;
		for( j = 0 ; j < n ; j ++)
		{
			he[i]+=jgg[i][j];
		}
	}
}
int shuchu(int jgg[][3] , int n )
{
	int	he[8]={0};
	q_hh(jgg  , n , he ) ;
	q_lh( jgg ,  n , he );
	he[6]=jgg[0][0]+jgg[1][1]+jgg[2][2];
	he[7]=jgg[2][0]+jgg[1][1]+jgg[0][2];
	int i;
	for(i = 0 ; i <7; i ++)
	{
		if(he[i]!=he[i+1])
		{
			return  0;
		}

	}
	return 1;
}



void shuru(int jgg[][3] , int  n)
{
	int i;
	for( i = 0; i < n ; i++)
	{
		int j;
		for( j = 0; j < n ; j++)
		{
			scanf("%d",&jgg[i][j]);
		}
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值