我已经编写了一段代码来使用指针添加数组的元素,但我无法获得预期的输出。
我已经使用完全相同的函数用 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/