扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
int qiuhe(int *arry) //求和函数 和最大不能超过int,如果需要不受限制,则要改进存储方式
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、微信小程序定制开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了金门免费建站欢迎大家使用!
{
int sum=0;
for(;*arry!='\0';arry++){
sum+=*arry;
}
return sum;
}
先获取数组长度,然后用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跟变长数组没有太大的关系,也应该用不到变长数组。因为一般的传数组到函数中就是传数组的地址和元素的个数的,那只是一个提示,不是要求。
参考资料来源:百度百科-数组
#includestdio.h
int sum(int n)
{
int i=0,s=0;
while(i=n)
{
s=s+i;
i++;
}
return s;
}
int main()
{
int n;
printf("请输入要累积的数:");
scanf("%d",n);
sum(n);
printf("累加的结果为%d",sum(n));
return 0;
}
扩展资料:
使用函数的优势:
C语言程序鼓励和提倡人们把一个大问题划分成一个个子问题,对应于解决一个子问题编制一个函数,因此,C语言程序一般是由大量的小函数而不是由少量大函数构成的,即所谓“小函数构成大程序”。
这样的好处是让各部分相互充分独立,并且任务单一。因而这些充分独立的小模块也可以作为一种固定规格的小“构件”, 用来构成新的大程序。
参考资料来源:百度百科-C语言
我知道了~
LZ
你代码中sum=sum+expt(n);错了
应该是sum=sum+expt(i);吧
要是按你这样写,当n=1是sum=expt(1)+expt(1)=3+3=6
所以没有你预期的结果
先说个题外话,您认为k=add(i,j)比k=i+j简单吗? 回到正题,问题出在scanf,改成scanf("%d%d", i, j);就可以了。如果不改,那么你输入就应该这样(例如):3,5。输出结果:8。也就是说,你必须在输入时输入两个数,并且以“,”隔开。还有个问题,你的getchar不会使程序暂停,因为输入队列中的“\"传入了getchar,你可以再加一个getchar,或者先清空输入队列,用scanf输入函数使之停顿。也可以,或者改用system("pause")暂停程序。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流