2 qmh c qmh_c 于 2015.07.08 01:23 提问

将a数组中的数依次取出分别与b数组中的数挨个相加得到新的数组再输出新数组的和 5C

有数组a[ ]={1,2,3,4,5}和数组b[ ]={1,2,3,4,5},需要将a数组中的数依次取出分别与b数组中的数相加得到新的数组再输出新数组的和,即第一次将a中的1分别与b中的1,2,3,4,5相加,得到[2,3,4,5,6],输出为2+3+4+5+6=20;第二次为将a中的2分别与b中的1,2,3,4,5相加,得到[3,4,5,6,7],输出为3+4+5+6+7=25,之后类似,求用C/C++编写,急用,感激不尽!!!

9个回答

securitit
securitit   2015.07.08 08:17

楼上的做法有点笨重吧,首先b数组是永远求和的,没必要每次都重新遍历再求和。
可以在楼上的基础上进行改进:
1.对b数组求和
2.输出值=a数组当前元素*b数组个数+b数组的和

qq983796981
qq983796981   2015.07.08 04:19

#include
int main()
{int a[ ]={1,2,3,4,5},b[ ]={1,2,3,4,5};
int x=sizeof(a)/sizeof(a[0]), y=sizeof(b)/sizeof(b[0]);
int i,j;int c[y],sum=0;
for(i=0;i<x;i++)
{ printf("c(%d)=",i);

for(j=0;j<y;j++)

{ c[j]=a[i]+b[j];

sum=sum+c[j];

printf("%d ",c[j]);

}
printf("\n sum(%d)=%d \n",i,sum);
}

return 0;
}

fengyehudie
fengyehudie   2015.07.08 08:23

首先计算B的整体值是对的,但是 也得注意楼主要求的输出格式。。。。

strutce
strutce   Ds   Rxr 2015.07.08 09:08

#include
int main()
{int a[ ]={1,2,3,4,5},b[ ]={1,2,3,4,5};

int i,j;sum=0;sum1=0;
for(i=0;i<b.length;i++)
{sum+=b[i];
}
for(j=0;j<a.length;j++)
{
sum1=sum+a[i]*b.length;
printf(sum1);
}

}

lovelj2012
lovelj2012   2015.07.08 09:52

a数组每个元素要依次和b数组逐个元素相加,那么可以先把b数组各元素求和保存到一个变量
如果仅仅为了遍历新的数组元素值,没必要产生新数组啊。
遍历a数组,每个元素加上这个变量进行输出呗。

frank_20080215
frank_20080215   2015.07.08 11:20

int a[ ]={1,2,3,4,5};
int b[ ]={1,2,3,4,5};
int size = sizeof(a)/sizeof(a[0]);
int sum[ ] = {};
int i,j;

sum[size] = {0,0,0,0,0}

for (i = 0; i < size; i++){
for (j = 0; j < size; j++) {
b[j] = b[j] + a[i];
}
for(j = 0; j < size; j++){
sum[i] = sum[i] + b[j];
}
}

zt110120
zt110120   2015.07.09 15:02

#include

int main()
{
int i,j;
int sum = 0;
int a[] = {1,2,3,4,5,};
int b[] = {1,2,3,4,5};
int c[6] = {0};

for(i = 0;i < 5;i++)
{
    for(j = 0;j < 5;j++)
    {
        c[j] = a[i] + b[j];
        sum= sum + c[j];
    }
    printf("%d\n",sum);
    sum = 0;
}
return 0;

}

u014306011
u014306011   2015.07.14 12:27

楼主,我这个代码绝对符合你的要求。

 #include<stdio.h>
int main(){
    int i,j,sum;
    int a[]={1,2,3,4,5};
    int b[]={1,2,3,4,5};
    int c[]={0,0,0,0,0};
    for(i=0;i<5;i++){
        sum=0;
        for(j=0;j<5;j++){
            c[j]=a[i]+b[j];
            sum+=c[j];
        }
        for(j=0;j<5;j++)
            if(j!=4)
                printf("%d+",c[j]);
            else
                printf("%d=",c[j]);
        printf("%d\n",sum);
    }
    return 0;
}

lingzhu111
lingzhu111   2015.08.07 17:02

b 的每个元素为 b[i] + a[0] + a[1] .... + a[4]
所以 b[0] + a[0] + a[1] .... + a[4]
b[1] + a[0] + a[1] .... + a[4]
b[2] + a[0] + a[1] .... + a[4]
b[3] + a[0] + a[1] .... + a[4]
b[4] + a[0] + a[1] .... + a[4]


             sum(b[]) + 5*sum(a[])
Csdn user default icon
上传中...
上传图片
插入图片