C语言数组如何进行元素求和?

如题,请高手给出思路或程序。... 如题,请高手给出思路或程序。 展开
 我来答
风若远去何人留
推荐于2017-09-12 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450112
专业C/C++软件开发

向TA提问 私信TA
展开全部

遍历数组,累加到和值对应的变量上即可。

代码如下:

int sum(int *a, int l)//对数组a的前l个元素求和,并返回和值。
{
    int r = 0;
    int i;
    for(i=0;i<l;++i)
        r+=a[i];
    return r;
}
pbbh7
推荐于2018-03-15 · 超过11用户采纳过TA的回答
知道答主
回答量:72
采纳率:0%
帮助的人:33万
展开全部
#include<stdio.h>
#include<malloc.h>
int main()
{
int n;
int val;
int * a;
int sun = 0, i;
printf("请输入数组的长度:");
scanf("%d", &n);
printf("\n");
a = (int *)malloc(n * sizeof(int));//为数组a动态分配内存
for(i = 0; i < n; i++)
{
printf("请输入数组的第%d个元素的值:", i+1);
scanf("%d", &val);
printf("\n");
a[i] = val;
}
for (i = 0; i < n; i++)
{
sun+=a[i];//sun+=a[i]相当于sun=sun+a[i];
}
printf("sun = %d\n",sun);
free(a);//释放a动态分配的内存
return 0;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
热血的鸽子
2010-01-08 · TA获得超过115个赞
知道答主
回答量:69
采纳率:0%
帮助的人:100万
展开全部
scanf("%d",&a[1]);
输入的值将被加入到数组第二个元素。
而你后面的语句却是:
for(i=0;i<1;i++)
{s=s+a[i];}

其中a[0] 就是个空值.相加当然产生个错误值。

改成a[5]更错了, a[5]数组长度5 ,索引是0..4 , a[5]越界了.

记住基础的原则:在局部域定义的变量必须手工初始化。
养成好习惯,谢谢。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
go123552151
2013-04-26 · 超过15用户采纳过TA的回答
知道答主
回答量:59
采纳率:0%
帮助的人:41万
展开全部
先求出一个数组前21个数{1,2,3,5,8,13,21 ... },关系是加1,加2,加3的关系,可以用循环:
int a[21];
int i=0;
int num = 1;
a[0] = 1;

for(i=1;i<21;i++){
a[i] = a[i-1] + num;
num++;

}
然后通过组合求出你所需要的结果。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Devryang
2012-08-05 · TA获得超过775个赞
知道小有建树答主
回答量:511
采纳率:50%
帮助的人:386万
展开全部
#include<stdio.h>
void main()
{
int i;
int a[3]={1,3,5},s=0;
for(i=0;i<3;i++)
s=s+a[i];
printf("s=%d",s);
}
追问
还有就是如何声明一个数组 其大小为变量?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式