c - 为什么我会得到意外的输出?

标签 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。 请帮我解决这个问题。

最佳答案

您正在循环内打印总和。将 print 排除在循环之外。

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

关于c - 为什么我会得到意外的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56136115/

相关文章:

python - 如何用Python将不同类型的数据一起打包成二进制数据

c++ - 如何初始化多种类型对象的自动类型数组

arrays - 查找多维数组中的缓存未命中/命中率

java - 为什么不在java中导入一个包来声明数组

c - 在C中基于stdin绘制#的垂直图

c - 通过读取字符串检测数据类型

c - 小端和大端分配

c - 动态内存分配代码解释

ios - 我如何在 UIImageView 中使用一串图像名称?

C复数和printf