我希望总和为[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;
}
答案 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];
}