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