为什么我得到了意外的输出?

时间:2019-05-14 18:02:32

标签: c arrays

我已经编写了一个代码,使用指针添加数组的元素,但是我无法获得预期的输出。

我已经使用完全相同的功能用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。 请帮助我解决该错误。

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;
}