使用数组并反转它们的总和

时间:2016-03-09 06:50:15

标签: c arrays windows sum

我希望总和为[0] + b [3],[1] + b [2]等等(直到a [3]和b [0]),但我似乎无法让我的代码工作。下面是执行[0] + b [0]的代码。关于如何更改代码以获得所需输出的任何想法?我尝试更改总和中的i

#include <stdio.h>

#include <math.h>

#define SIZE 4

int main()

{

    int i;

    int sum[SIZE];

    int a[SIZE] = { 2, 3, 5, 8 };

    int b[SIZE] = { 1, 0, 4, 6 };


for (i = 0; i < SIZE; ++i)

{

    printf("Enter a[%d] \n", i);

    scanf_s("%d", &a[i]);

}

for (i = 3; i < SIZE; --i)

{
    printf("Enter b[%d] \n", i);

    scanf_s("%d", &b[i]);

    {
        if (i == 0)
            break;
    }
}

for (i = 0; i < SIZE; i++)

{

    printf("c[%d] = %d and d[%d] = %d\n", i, a[i], i, b[i]);

}

    sum[SIZE] = 0;

    for (i = 0; i < SIZE; i++)

    {
        sum[i] = a[i] + b[i];  //I tried writing individual statements for each by using sum [0] = a[3] + b[0] etc. but that didn't work
    }


for (i = 0; i < SIZE; i++)

{

    printf ("sum[%d] = %d \n", i, sum[i]); // I also tried altering the print statement but that didn't work which is why I resorted back to this original code

}

return 0;

}

2 个答案:

答案 0 :(得分:2)

试试这个:

for (i = 0; i < SIZE; i++)
{
         sum[i] = a[i] + b[SIZE - i - 1];  
}

答案 1 :(得分:0)

您可以使用两个索引。在循环中递减另一个时增加一个。

int ai = 0;
int bi = SIZE-1;

for ( ; ai < SIZE && bi >= 0; ++ai, --bi )
{
   sum[ai] = a[ai] + b[bi];
}