문제
사용자가 런타임에 배열에서 요소를 삭제하고 삭제 후 화면에 결과를 표시하는 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