zzulioj1126(布尔矩阵)

#include<stdio.h>
int a[1000][1000];
int x,y;//定为全局变量
int BalanceMatrix(int a[][1000],int n)
{
 int num1=0;
 int num2=0;
 int hang[100]={0};
 int lie[100]={0};
 int HANG=0,LIE=0,i,b;
 
 for(i=0;i<n;i++)
 for(b=0;b<n;b++)
 {
  hang[i]+=a[i][b];
 }
 for(i=0;i<n;i++)
 {
  if(hang[i]%2==1)
  {
  num1++;
  HANG=i;}
 }
 
 for(b=0;b<n;b++)
 for(i=0;i<n;i++)
 {
  lie[b]+=a[i][b];
 }
 
 for(i=0;i<n;i++)
 {
  if(lie[i]%2==1)
  {
  {
  num2++;
  LIE=i;}
     }
 }
 x=HANG,y=LIE;
 if(num1==0&&num2==0)//这个判断部分大概算是数学问题
 {
  return 2;
 }
 else if(num1==1&&num2==1)
 {
  return 1;
 }
 else
 return -1;
}
int main()
{
 int i;
 int n;
 int b;
 int judge;
 scanf("%d",&n);
 for(i=0;i<n;i++)
 {
   for(b=0;b<n;b++)
   {
    scanf("%d",&a[i][b]);
   }
 }
 judge=BalanceMatrix(a,n);
 if(judge==2)
 printf("OK");
 else if(judge==1)
 printf("Change bit(%d,%d)",x,y);
 else
 printf("Corrupt");
}
发布了16 篇原创文章 · 获赞 0 · 访问量 345

猜你喜欢

转载自blog.csdn.net/m0_46238735/article/details/104144972