在C中求和并找到数组的非零项

时间:2012-09-16 11:37:38

标签: c arrays gsl

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

  1. 总结其条目。
  2. 查找所有非零条目的位置。
  3. 我通过循环遍历数组的每个元素来做这两件事。 E.g。

    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 个答案:

答案 0 :(得分:0)

对于第2部分,您实际上不需要做任何工作。

如果数组中的值为零,那么它将评估为false。任何非零值都将评估为true。因此,您可以随时遍历数组,并忽略零值。

答案 1 :(得分:0)

根据Gregor,EvilTeach和我自己的一些谷歌搜索的评论,我的方法是可以接受的。