1

我需要对 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 Scientific Library (GSL)。我最近才开始 C。

4

2 回答 2

0

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

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

于 2012-09-16T13:57:40.973 回答
0

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

于 2012-09-21T13:47:07.777 回答