int qiuhe(int *arry) //求和函数 和最大不能超过int,如果需要不受限制,则要改进存储方式
创新互联建站专注为客户提供全方位的互联网综合服务,包含不限于做网站、成都做网站、青县网络推广、微信小程序、青县网络营销、青县企业策划、青县品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联建站为所有大学生创业者提供青县建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com
{
int sum=0;
for(;*arry!='\0';arry++){
sum+=*arry;
}
return sum;
}
先说个题外话,您认为k=add(i,j)比k=i+j简单吗? 回到正题,问题出在scanf,改成scanf("%d%d", i, j);就可以了。如果不改,那么你输入就应该这样(例如):3,5。输出结果:8。也就是说,你必须在输入时输入两个数,并且以“,”隔开。还有个问题,你的getchar不会使程序暂停,因为输入队列中的“\"传入了getchar,你可以再加一个getchar,或者先清空输入队列,用scanf输入函数使之停顿。也可以,或者改用system("pause")暂停程序。
C语言实现并行求和算法:
1、问题描述
将数组A均匀划分成m个片段,每个数组片段最多有(n+m-1)/m 个元素。每个数组片段分别由一个线程负责局部求和,最后这些部分和加起来就得到数组中所有元素的总和。
2、代码书写
3、注意事项
C语言中不允许动态数组类型。例如: int n;scanf("%d",n);int a[n]; 用变量表示长度,想对数组的大小作动态说明,这是错误的。这里使用malloc 向系统申请分配指定size个字节的内存空间。void* 类型可以强制转换为任何其它类型的指针。
void类型转换
malloc返回类型是 void* 类型:这并不是说该函数调用后无返回值,而是返回一个结点的地址,该地址的类型为void,即一段存储区的首址,其具体类型无法确定,只有使用时根据各个域值数据再确定。可以用强转的方法将其转换为别的类型。
向系统申请10个连续的int类型的存储空间,用指针pi指向这个连续的空间的首地址。并且用(int*)对malloc的返回类型进行转换,以便把int类型数据的地址赋值给指针pi。
例如:
int *pd=NULL;
pi=(int *)malloc(N*sizeof(int)).