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

C 포인터를 사용하여 배열 요소를 삽입하는 프로그램.

<시간/>

문제

사용자가 런타임에 배열에 요소를 삽입하고 삽입 후 화면에 결과를 표시하는 C 프로그램을 작성하십시오. 삽입된 요소가 배열의 크기보다 크면 Invalid Input을 표시해야 합니다.

해결책

배열은 공통 요소 그룹을 하나의 이름으로 보유하는 데 사용됩니다.

배열 연산은 다음과 같습니다 -

  • 삽입
  • 삭제
  • 검색

알고리즘

포인터를 사용하여 배열에 요소를 삽입하는 알고리즘을 참조하십시오.

1단계:요소 수를 선언하고 읽습니다.

2단계:런타임에 배열 크기를 선언하고 읽습니다.

3단계:배열 요소를 입력합니다.

4단계:포인터 변수를 선언합니다.

5단계:런타임에 동적으로 메모리를 할당합니다.

6단계:요소를 삽입할 위치를 입력합니다.

7단계:해당 위치에 새 요소를 삽입하고 오른쪽 요소 중 한 위치만큼 이동합니다.

예시

배열 크기:5

배열 요소는 다음과 같습니다 -

1 2 3 4 5

새 요소 삽입:9

위치:4

출력은 다음과 같습니다 -

After insertion the array elements are:
1 2 3 9 4 5

예시

다음은 포인터의 도움으로 배열에 요소를 삽입하는 C 프로그램입니다 -

#include<stdio.h>
#include<stdlib.h>
void insert(int n1, int *a, int len, int ele){
   int i;
   printf("Array elements after insertion is:\n");
   for(i=0;i<len-1;i++){
      printf("%d\n",*(a+i));
   }
   printf("%d\n",ele);
   for(i=len-1;i<n1;i++){
      printf("%d\n",*(a+i));
   }
}
int main(){
   int *a,n1,i,len,ele;
   printf("enter size of array elements:");
   scanf("%d",&n1);
   a=(int*)malloc(n1*sizeof(int));
   printf("enter the elements:\n");
   for(i=0;i<n1;i++){
      scanf("%d",a+i);
   }
   printf("enter the position where the element need to be insert:\n");
   scanf("%d",&len);
   if(len<=n1){
      printf("enter the new element that to be inserted:");
      scanf("%d",&ele);
      insert(n1,a,len,ele);
   } else {
      printf("Invalid Input");
   }
   return 0;
}

출력

위의 프로그램이 실행되면 다음과 같은 출력을 생성합니다 -

enter size of array elements:5
enter the elements:
1
3
5
7
2
enter the position where the element need to be insert:
5
enter the new element that to be inserted:9
Array elements after insertion are:
1
3
5
7
9
2