C语言数组怎样求和,

数字数组如下;2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。... 数字数组如下;
2/1,3/2,5/3,8/5,13/8,21/13...
求出这个数列的前20项之和。
展开
 我来答
帐号已注销
2020-11-22 · TA获得超过77万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:162万
展开全部

先获取数组长度,然后用for循环,从数组中获取值进行累加求和。

#include

#include

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;

}

扩展资料:

一个数组中的所有元素具有相同的数据类型(在C、C++、Java、pascal中都这样。但也并非所有涉及数组的地方都这样,比如在Visual Foxpro中的数组就并没这样的要求)。当然,当数据类型为 Variant 时,各个元素能够包含不同种类的数据(对象、字符串、数值等等)。可以声明任何基本数据类型的数组,包括用户自定义类型和对象变量。

如果要用户输入的是一个数组,一般是用一个循环,但是在输入前也需要固定数组的大小。

compact跟变长数组没有太大的关系,也应该用不到变长数组。因为一般的传数组到函数中就是传数组的地址和元素的个数的,那只是一个提示,不是要求。

参考资料来源:百度百科-数组

go123552151
推荐于2017-10-12 · 超过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++;

}
然后通过组合求出你所需要的结果。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
亥朝辛自
2019-08-28 · TA获得超过3798个赞
知道大有可为答主
回答量:3043
采纳率:24%
帮助的人:201万
展开全部
c语言的静态数组是编译期确定长度,也就是它的长度必需是整数常数、展开为整数的宏或enum、const常量整数这几种情况,不能是变量。如果期望一个数组的长度在运行期确定,则需要用c语言标准库的malloc函数,那个叫动态存储
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nigoole
2013-04-26 · TA获得超过1369个赞
知道小有建树答主
回答量:675
采纳率:71%
帮助的人:445万
展开全部
#include<stdio.h>
void main()
{
int i,x,y,a;
float sum=0;
x=2;
y=1;
for (i=0;i<20;i++)
{
sum=sum+(float)(x)/y;
a=x;
x=x+y;
y=a;
}
printf("%f\n",sum);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
在恨真后丽
2019-07-07 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:26%
帮助的人:669万
展开全部
先获取数组长度,然后用for循环,从数组中获取值进行累加求和。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式