我需要对 C 中的数组做两件事:
- 总结其条目。
- 找到所有非零条目的位置。
我通过遍历数组的每个元素来完成这两项操作。例如
int sum_array(int a[], int num_elements)
{
int i, sum=0;
for (i=0; i<num_elements; i++)
{
sum = sum + a[i];
}
return(sum);
}
对于任务 2,我将检查条目是否为 0。如果不是,则将其位置添加到另一个数组以将其标记为非零。
问题
有没有更有效的方法来做到这些?
我也在使用 GNU 科学图书馆 (GSL),如果那里有更有效的解决方案的话。我最近刚开始学 C。
最佳答案
对于第 2 部分,您实际上不需要做任何工作。
如果数组中的值为零,则它的计算结果为假。任何非零值都将评估为真。因此您可以随时遍历数组,并忽略零值。
关于c - 在 C 中求和并查找数组的非零项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12446530/