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

포인터를 사용하여 배열 요소를 삭제하는 C 프로그램

<시간/>

문제

사용자가 런타임에 배열에서 요소를 삭제하고 삭제 후 화면에 결과를 표시하는 C 프로그램을 작성하십시오. 삭제된 요소가 배열에 없으면 Invalid Input을 표시해야 합니다.

해결책

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

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

  • 삽입
  • 삭제
  • 검색

알고리즘

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

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

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

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

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

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

6단계 - 삭제할 요소를 입력합니다.

7단계 - 삭제 후 요소를 왼쪽으로 한 위치 이동합니다.

예시

배열 크기:5

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

1 2 3 4 5

삭제할 요소의 위치를 ​​입력하십시오. 4

출력은 다음과 같습니다 -

After deletion the array elements are:
1 2 3 5

예시

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

#include<stdio.h>
#include<stdlib.h>
void delete(int n,int *a,int pos);
int main(){
   int *a,n,i,pos;
   printf("enter the size of array:");
   scanf("%d",&n);
   a=(int*)malloc(sizeof(int)*n);
   printf("enter the elements:\n");
   for(i=0;i<n;i++){
      scanf("%d",(a+i));
   }
   printf("enter the position of element to be deleted:");
   scanf("%d",&pos);
   delete(n,a,pos);
   return 0;
}
void delete(int n,int *a,int pos){
   int i,j;
   if(pos<=n){
      for(i=pos-1;i<n;i++){
         j=i+1;
         *(a+i)=*(a+j);
      }
      printf("after deletion the array elements is:\n");
      for(i=0;i<n-1;i++){
         printf("%d\n",(*(a+i)));
      }
   }
   else{
      printf("Invalid Input");
   }
}

출력

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

enter the size of array:5
enter the elements:
12
34
56
67
78
enter the position of element to be deleted:4
After deletion the array elements are:
12
34
56
78