我已经编写了一个代码,使用指针添加数组的元素,但是我无法获得预期的输出。
我已经使用完全相同的功能用C以及C ++语言编写了代码,但是我从C ++代码中获得了预期的输出,但是使用C的代码却没有给我正确的输出。
void sum(int *array, int length)
{
int i,sum_of_array=0;
for(i=0;i<length;i++)
{
sum_of_array=sum_of_array+ *(array+i);
printf("%d",sum_of_array);
}
}
int main()
{
int array[]={-1,0,0,0,1,-1};
sum(array,6);
return 0;
}
我收到的结果是-1-1-1-10-1
,但是预期结果应该是-1。
请帮助我解决该错误。
答案 0 :(得分:2)
您正在循环内打印求和。将打印内容置于循环之外。
void sum(int *array, int length)
{
int i,sum_of_array=0;
for(i=0;i<length;i++)
{
sum_of_array=sum_of_array+ *(array+i);
}
// print here
printf("%d",sum_of_array);
}
int main()
{
int array[]={-1,0,0,0,1,-1};
sum(array,6);
return 0;
}