2012-09-16 2 views
1
내가 C에서 배열에 두 가지 일을 할 필요가

에 배열의 비 - 제로 항목을 찾는 :합산와 C

  1. 의 항목을 합산.
  2. 모든 0이 아닌 항목의 위치 찾기.

나는 배열의 각 요소를 루핑하여 두 작업을 수행하고 있습니다. 예 :

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인지 확인합니다. 그렇지 않은 경우 다른 위치에 위치를 추가하여 0이 아닌 것으로 표시합니다.

는이 일을 더 효율적인 방법은

질문이 있습니까?

더 효율적인 솔루션이있는 경우 GNU 과학 라이브러리 (GSL)도 사용하고 있습니다. C를 최근에 시작했습니다.

+5

귀하의 접근 방법은 타당합니다. 성능 문제가 발생할 경우에만 최적화를 시작하십시오. – Gregor

+0

+1 빠른 응답을 보내 주셔서 감사합니다. :) – Legendre

답변

0

Gregor, EvilTeach 및 내 자신의 인터넷 검색의 의견을 바탕으로 제 접근 방식을 사용할 수 있습니다.

0

2 부에서는 실제로 작업하지 않아도됩니다.

배열의 값이 0이면 false로 평가됩니다. 0이 아닌 값은 true로 평가됩니다. 따라서 언제든지 배열을 반복 할 수 있고 0 값을 무시할 수 있습니다.

+0

고마워요,하지만 구체적으로 배열에 0이 아닌 항목의 위치를 ​​찾아야합니다. – Legendre