C语言数组怎样求和,

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言数组怎样求和,相关的知识,希望对你有一定的参考价值。

数字数组如下;
2/1,3/2,5/3,8/5,13/8,21/13...
求出这个数列的前20项之和。

先获取数组长度,然后用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跟变长数组没有太大的关系,也应该用不到变长数组。因为一般的传数组到函数中就是传数组的地址和元素的个数的,那只是一个提示,不是要求。

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

参考技术A 先求出一个数组前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++;


然后通过组合求出你所需要的结果。本回答被提问者和网友采纳
参考技术B c语言的静态数组是编译期确定长度,也就是它的长度必需是整数常数、展开为整数的宏或enum、const常量整数这几种情况,不能是变量。如果期望一个数组的长度在运行期确定,则需要用c语言标准库的malloc函数,那个叫动态存储 参考技术C #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);
参考技术D 先获取数组长度,然后用for循环,从数组中获取值进行累加求和。

C语言怎样利用数组处理数据?

如上图所示,读取一个txt文件,如何得到下图内容(如果每行前两列相同,比较第三列,大者输出,如果不同,逐行输出)?

参考技术A #include
#include

long ToLong(char *s)
long i = 0,num = 0;
while(s[i])
if(s[i] >= 'a' && s[i] <= 'f')
num = 16 * num + s[i] - 'a' + 10;
else if(s[i] >= 'A' && s[i] <= 'F')
num = 16 * num + s[i] - 'A' + 10;
else if(s[i] >= '0' && s[i] <= '9')
num = 16 * num + s[i] - '0';
++i;

return num;


int main()
char s[81];
enum MAXLEN = 500;
long num[MAXLEN],i,cnt = 0,n = 0;
FILE *infp = fopen("source.txt","rt");
FILE *outfp = fopen("result.txt","wt");
if(infp == NULL || outfp == NULL)
printf("打开文件失败!\n");
return 1;

while(!feof(infp))
fgets(s,81,infp);
num[n++] = ToLong(s);

fclose(infp);
for(i = 0; i < n; ++i)
if(cnt && cnt % 20 == 0)
fprintf(outfp,"\n");
printf("\n");

fprintf(outfp,"%ld ",num[i]);
printf("%ld ",num[i]);

fclose(outfp);
return 0;
追问

输出结果不对啊?

以上是关于C语言数组怎样求和,的主要内容,如果未能解决你的问题,请参考以下文章

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

C语言实现一个可变长的二维数组

求C语言二维数组元素排列组合?

c语言求两个数组的并交集

C语言中,对于不知道长度的数组怎样输入。。。

C语言中怎样定义动态一维数组