有三个数组都是int型的(而且元素的个数都是偶数)
 a[]={1,2,3,4,5,6};
 b[]={2,2,1,4,5,5,6,7};
 c[]={3,2,4,1};
怎么得到一个数组???
三个数组中  偶数项(是位置,不是下标)的值  相等的话,它们的前面一项就相加,再放到数组d中;
如果不相等的话,就把他们直接放到数组中!按照以上的规定,应该得到
d[]={3,2,4,4,5,6,5,5,6,7}

解决方案 »

  1.   

    按照以上的规定,应该得到
    d[]={3,2,4,4,5,6,5,5,6,7}
    这里应该是
    d[]={6,2,4,4,5,6,5,5,6,7}
    详细解析:因为a[1]==b[1]==c[1]=2,所以需要a[0]+b[0]+c[0]=6;得到d[]的部分元素为[6,2],而a[3]==b[3]=4,所以需要a[2]+b[2]=4,再放入d[]中,得到d[]的部分元素为[4,4],现在的偶数位的元素因为没有相等的了,就全部放入d[]中!程序应该是怎样的呢?
      

  2.   

    是不是不需要处理a[i] != c[i]的情况呢???ArrayList d = new ArrayList();
    int i = 1;
    for(; i < a.length, i < b.length, i < c.length;i += 2) {
      if(a[i] == b[i])
        if(a[i] == c[i]) {
          d.add(new Integer(a[i-1] + b[i-1] + c[i-1]));
          d.add(new Integer(a[i]));
        } else {
          d.add(new Integer(a[i-1] + b[i-1]));
          d.add(new Integer(a[i]));
        }
    }
    for(int j = i + 1; j < a.length; j++) 
      d.add(new Integer(a[j]));
    for(int j = i + 1; j < b.length; j++) 
      d.add(new Integer(b[j]));
    for(int j = i + 1; j < c.length; j++) 
      d.add(new Integer(c[j]));int[] d2 = new int[d.size()];
    for(int j = 0; j < d.size(); j++)
      d2[j] = ((Integer)d.get(j)).intValue();
      

  3.   


    详细解析:因为a[1]==b[1]==c[1]=2,所以需要a[0]+b[0]+c[0]=6;得到d[]的部分元素为[6,2],而a[3]==b[3]=4,所以需要a[2]+b[2]=4,再放入d[]中,得到d[]的部分元素为[4,4],现在的偶数位的元素因为没有相等的了,就和它前面的一位一起全部放入d[]中!也就是说这些数据是两个两个一组的了,
      

  4.   

    ChDw(米) ( ) 
    按照你的程序,得到的结果是[6,2,4,4,5,6]
    而按照以上的规定,应该得到
    d[]={6,2,4,4,5,6,5,5,6,7}““是不是不需要处理a[i] != c[i]的情况呢???””!
    要啊!这三个数组中,(两个数为一组的)只要偶数位的值不同就该数和它的前一位的数直接放在d[]中,如果偶数位的值相同就每个数组中该数的前一位相加,把结果与该数放在d[]中!