Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C에서 이전 숫자를 나눈 후 배열 합계?

<시간/>

배열은 동일한 데이터 유형의 요소 시퀀스입니다. 이 문제에서 우리는 문제를 해결하기 위해 정수 배열을 고려할 것입니다. 이 문제에서 우리는 요소를 진행하는 요소에서 요소를 나누어 찾은 요소의 합을 찾을 것입니다.

이 문제를 더 잘 이해하기 위해 몇 가지 예를 들어보겠습니다. −

예시 1 -

Array : 3 , 5 ,98, 345
Sum : 26

설명 − 3 + 5/3 + 98/5 + 345/98 =3 + 1 + 19 + 3 =26

각 요소를 선행 요소로 나누고 합계를 찾기 위해 나누기의 정수 부분만 고려했습니다.

예시 2 -

Array : 2, 5 , 8, 11, 43 , 78 , 234
Sum : 13

설명 − 2 + 2 + 1 + 1 + 3 + 1 + 3 =13

알고리즘

이 알고리즘은 배열의 각 요소를 순회합니다. 그리고 그것을 앞의 요소로 나눕니다. 그런 다음 sum 변수에 몫 값을 더합니다.

Input : Array - int arr[]
Output : int sum


Step 1: Initialize sum = arr[0]
Step 2: for(i = 1 to size of arr ) follow step 3
Step 3 : sum = sum + (arr[i]/arr[i-0] )
Step 4: print the sum

이것은 이전 숫자에서 숫자를 나눈 후 배열의 합을 찾는 쉬운 4단계 알고리즘입니다. . 논리에 따르면 첫 번째 요소에는 요소가 없으므로 배열의 첫 번째 요소로 합계를 초기화했는데 이는 어떤 요소로도 나눌 수 없음을 의미합니다. 따라서 for 루프를 고려하면 잘못된 -1 인덱스의 요소에 액세스하므로 오류가 발생합니다.

예시

#include<stdio.h>
int main() {
   int arr[] = { 2, 5 , 8, 11, 43 , 78 , 234 };
   int n = sizeof(arr)/sizeof(arr[0]);
   int sum = arr[0];
   for (int i = 1; i < n; i++) {
      sum += arr[i] / arr[i - 1];
   }
   printf("The sum of array after dividing number from previous numbers is %d \n", sum);
   return 0;
}

출력

The sum of array after dividing number from previous number is 13.