c - 在 C 中求和并查找数组的非零项

标签 c arrays gsl

我需要对 C 中的数组做两件事:

  1. 总结其条目。
  2. 找到所有非零条目的位置。

我通过遍历数组的每个元素来完成这两项操作。例如

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/

相关文章:

c++ - 我有内存不一致吗?苹果系统

c++ - 从 gcc/clang (C++) 中的函数作用域中获取标签地址

c++ - 为 C/C++ 设置 Windows 构建环境的最佳方法

c - 如何在 Pebble watch 中创建表格

python - Numpy:对于一个数组中的每个元素,找到另一个数组中的索引

c - GNU GSL BLAS 库, undefined symbol

c - 异常: Access Violation when trying to use fscanf()

java - 根据 if else 语句更改字符串数组项

python - Matplotlib x 轴过度拥挤的标签渲染

c++ - 如何管理一系列的gsl_vector