首页 > 用户发贴区 > 编程问题提问区 > 困惑我好久为什么不能正确输出?请各位指正
2009
06-14

困惑我好久为什么不能正确输出?请各位指正

我详细表述编写程序的思路:
a数组和b数组对比,如a数组中有和b数组中相同四码的就输出(这一步的算法没问题)。关键是把counter2要写入输出数组的第六列上(既下边正确输出第六列上的19,16,16,18)。   谢谢版主把这个困惑我好久的问题解决。多谢多谢!!!
但错误输出是:    0 0 0 0 0 19
                  0 0 0 0 0 16
                  0 0 0 0 0 16
                  0 0 0 0 0 18   
         
正确输出应该是:5 6 11 12 21 19
                5 6 11 12 21 16
                5 8 14 15 22 16
                4 9 10 15 21 18


#include<stdio.h>
void main()
{           
int counter1,counter2,sum;
int i,j,s,AA,OKKO;
int a[4][5]={
                {5,6,11,12,21},
                {5,8,14,15,22},
                {7,10,11,15,22},
                {4,9,10,15,21}
                };
int b[6][5]={
                {5,10,11,12,21},
                {1,10,11,12,21},
                {1,5,11,12,21},
                {5,6,11,12,22},
                {5,8,14,15,21},
                {4,9,13,15,21}
                };
    int c[10][6]={0};
    for(i=0;i<4;i++)                    
    {
        for(s=0;s<6;s++)
        {
           AA=0;sum=0;counter1=0;counter2=0;
            for(j=0;j<5;j++)
            {                        
            if(b[s][j]==a[i][j])//a数组和b数组对比
            {
                AA++;
                sum=AA+j+sum;//sum是要算出一个数组中相同码的和.比如一个数组中与另一个数组有四个码是相同的.但由于相同码的位置不同那它们的sum和也是不一样的.
                if(AA==4)//数组中有四个数码相同的将AA赋出(AA=4说明数组中是四码相同)
                {
                 counter1=AA;
                 counter2=sum;//如果有四码相同就把上一步计算出的sum的赋给counter2
                }
            }
      if(counter1>=4)//如有四码相同的就输出
      {
           c[i][5]=counter2;//将counter2赋给c数组的第六列上
            for(j=0;j<6;j++)
              printf(“%4d”,c[i][j]);
            printf(“\n”);
            OKKO;
        }
        }
    }
}
}


留下一个回复