首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将数组的偶数和奇数相加

如何将数组的偶数和奇数相加
EN

Stack Overflow用户
提问于 2012-05-04 05:48:39
回答 1查看 4.5K关注 0票数 0

我试图从递归数组中获得偶数的和和奇数的和,然后将这两个和相加。我试图循环数组,以便获得偶数,但它始终返回第一个索引。请提前帮助和感谢..

我的目标是在数组2,1,5,9,8,4中获取偶数索引,并将其添加到奇数索引中。a=2,a1=1,a2=5,a3=9,a4=8,a5=4。所以需要(2+5+8)-(1+9+4)=1

这就是我到目前为止所得到的,我不熟悉递归,所以我的代码可能是关闭的

代码语言:javascript
运行
复制
int calc(int *a, int size)
{
    if(size==1 || size==0)
        return a[0];
    for(int i=0; i<size; i++){
        if(i%2==0){
            int sum_i = a[i];
            int m=calc(a, size-1);
            if(m>a[size-1])
                return m;
        }
    }
    for(int j=0; j<size; j++){
        if(j%2!=0);
        int sum_j = a[j];
        return sum_j;
    }
    int sum = a[i] - a[j];
    int e = calc(a, size-1);
    if(e%2==0)
        return e=e+0; //return even

    return sum;
}

int main( )
{
    int a[6]={1,2,3,5,6,2};
    int size = 6;   
    cout<< calc(a, size)<<endl;

    system("pause");   
    return 0;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-04 05:55:11

你不需要递归吗?

代码语言:javascript
运行
复制
// calc(): returns sum(a[0], a[2], a[4], ...) - sum(a[1], a[3], a[5], ...)
int calc(int *a, int size)
{
    int sum_even_pos = 0;
    int sum_odd_pos = 0;
    for (int i = 0; i < size; i++) 
    {
        sum_even_pos += a[i];
        if (++i < size) sum_odd_pos += a[i];
    }
    return sum_even_pos - sum_odd_pos;
}

http://codepad.org/DVx0sgg1

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10439792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档