>  기사  >  백엔드 개발  >  C 프로그램에서 여러 배열 범위 증분 작업을 수행한 후 수정된 배열을 인쇄합니다.

C 프로그램에서 여러 배열 범위 증분 작업을 수행한 후 수정된 배열을 인쇄합니다.

王林
王林앞으로
2023-09-13 23:49:021447검색

C 프로그램에서 여러 배열 범위 증분 작업을 수행한 후 수정된 배열을 인쇄합니다.

m개의 정수와 n(배열에 추가할 값)을 포함하는 배열 arr[m]과 시작과 끝이 지정된 r개의 쿼리가 제공됩니다. 각 쿼리에 대해 배열의 제한 시작부터 끝까지 n 값을 추가해야 합니다.

Example

Input:
arr[] = {1, 2, 3, 4, 5}
query[] = { { 0, 3 }, { 1, 2 } }
n = 2
Output:
If we run above program then it will generate following output:
Query1: { 3, 4, 5, 6, 5 }
Query2: { 3, 6, 7, 6, 5 }

이 프로그램은 -

  • 쿼리의 시작점부터 시작하여 쿼리에 저장된 끝점까지 배열을 순회하는 모든 쿼리를 반복하는 간단한 접근 방식으로 해결할 수 있습니다.
  • n 값을 추가하고 배열을 인쇄합니다.

Algorithm

START
STEP 1 : DECLARE A STRUCT range for start AND end LIMITS
STEP 2 : IN FUNCTION add_tomatrix(int arr[], struct range r[], int n, int size, int m)
   int i, j, k;
   LOOP FOR i = 0 AND i < m AND i++
      LOOP FOR j = r[i].start AND j<= r[i].end AND j++
         arr[j] = arr[j] + n
      END FOR
      LOOP FOR k = 0 AND k < size AND k++
         PRINT arr[k]
      END FOR
   END FOR
STOP

Example

#include <stdio.h>
struct range{
   int start, end; //struct to give the range for the array elements
};
int add_tomatrix(int arr[], struct range r[], int n, int size, int m){
   int i, j, k;
   for ( i = 0; i < m; i++) //for all the elements in a struct we defined{
      for(j = r[i].start; j<= r[i].end; j++) //from where till where we want our results to be updated{
         arr[j] += n; //add the value of the particular range
      }
      printf("Query %d:", i+1);
      for ( k = 0; k < size; k++){
         printf(" %d",arr[k]); // print the whole array after every query
      }
      printf("</p><p>");
   }
}
int main(int argc, char const *argv[]){
   int arr[] ={3, 4, 8, 1, 10};
   struct range r[] = {{0,2}, {1, 3}, {3, 4}};
   int n = 2;
   int size = sizeof(arr)/sizeof(arr[0]);
   int m = sizeof(r)/sizeof(r[0]);
   add_tomatrix(arr, r, n, size, m);
   return 0;
}

Output

위 프로그램을 실행하면 다음과 같은 출력이 생성됩니다. -

Query 1: 5 6 10 1 10
Query 2: 5 8 12 3 10
Query 3: 5 8 12 5 12

위 내용은 C 프로그램에서 여러 배열 범위 증분 작업을 수행한 후 수정된 배열을 인쇄합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제