怎么利用指针用数组中各数字的和

举例:假设有这样一个数组 int a[]={1,2,3,4}
现在要做一个main函数,调用,传入上面的数字数组,并返回上述数组的累加和
main函数的样子:void fun(int *arr,int *sum)
int *arr表示传数组
int *sum表示通过指针返回累加和

第1个回答  2011-05-24

int a[10];
int *p=a; //将数组a的首地址赋给指针p

法一:直接输入
cin>>*p; //为a[0]赋值
cin>>*(p+1); //为a[1]赋值,依此类推
cin>>*(p+9); //为a[9]赋值,不要越界

法二:完成给整个数组赋值
for(int i=0;i<10;i++)
cin>>*(p+i);
第2个回答  2011-05-23
#include <stdio.h>
void fun(const int *arr, const int n, int *sum) // n表示数组的元素个数
{
int i;
for (i = 0; i < n; i++)
*sum += arr[i];
}

int main(void)
{
int a[] = {1, 2, 3, 4};
int sum = 0;
fun(a, 4, &sum);
printf("sum = %d\n", sum);
return 0;
}本回答被提问者采纳
第3个回答  2011-05-23
int fun(int *arr,int *sum)
{
int i;
for(i=0;i<4;i++)
{
printf("arr[i] = %d\n",arr[i]);
*sum += arr[i];
}
return *sum;
}
main()
{
int sum = 0;
int a[]={1,2,3,4};
int total;
total = fun(&a,&sum);
printf("total = %d\n",total);
}
第4个回答  2011-05-23
#include <stdio.h>
void fun(int *arr,int *sum)
{int i; *sum=0;
for(i=0; i<4; i++) *sum+=arr[i];
}
main()
{int a[]={1,2,3,4},k;
fun(a,&k);
printf("sum = %d", k);
}
相似回答