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文件,如何得到下图内容(如果每行前两列相同,比较第三列,大者输出,如果不同,逐行输出)?
#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语言数组怎样求和,的主要内容,如果未能解决你的问题,请参考以下文章