假若:A[4][4]=
{1,1,1,1
 0,0,0,0,
 1,1,0,1,
 0,0,0,0

B[4][4]=
{0,1,0,1
 0,0,1,0,
 1,0,0,1,
 0,1,0,1

我现在想依次比较A[0][0]、B[0][0],一直到A[3][3]、B[3][3],如果有一个相等,就跳出循环体返回FALSE,否则的话,就返回TRUE。急,急,谁能给我一段小程序。谢谢,在线送分。

解决方案 »

  1.   


    BOOL Eq()
    {
    int i,j;for(i=0;i<4;i++)
    {
    for(j=0;j<4;j++)
       if (A[i][j]!=B[i][j])
          return FALSE;
    }return TRUE;
    }
      

  2.   

    错了应该是:BOOL Eq()
    {
    int i,j;for(i=0;i<4;i++)
    {
    for(j=0;j<4;j++)
       if (A[i][j]==B[i][j])
          return FALSE;
    }return TRUE;
    }
      

  3.   

    其实可以更简单int *p1 = (int *)A;
    int *p2 = (int *)B;
    for(int i=0; i<16; i++)
    {
       if(*p1 == *p2)
           return FALSE;
       p1++;
       p2++;
    }
      

  4.   

    搞定,我加了break从循环体中跳出,然后else,return true,结构就出错了。。谢谢二位,收到分数了吗?
      

  5.   

    风格更好的写法:
    //我假设你的A定义为int A[4][4];,如果不是,你相应变换下面p1、p2的类型int *p1 = (int *)A;
    int *p2 = (int *)B;
    for(int i=0; i<sizeof(A)/sizeof(A[0][0]); i++)
    {
       if(*p1 == *p2)
           return FALSE;
       p1++;
       p2++;
    }