소개
배열은 연속된 메모리 위치에 저장된 유사한 데이터 항목들의 모음이며, 요소들로 구성됩니다. 요소는 해당 메모리 위치의 인덱싱을 통해 접근할 수 있습니다. 때로는 위치나 값을 기준으로 배열의 요소를 삭제하는 것이 필수적입니다. 이 Lab 에서는 위치와 값을 기준으로 배열에서 요소를 제거하는 방법을 배우겠습니다.
배열은 연속된 메모리 위치에 저장된 유사한 데이터 항목들의 모음이며, 요소들로 구성됩니다. 요소는 해당 메모리 위치의 인덱싱을 통해 접근할 수 있습니다. 때로는 위치나 값을 기준으로 배열의 요소를 삭제하는 것이 필수적입니다. 이 Lab 에서는 위치와 값을 기준으로 배열에서 요소를 제거하는 방법을 배우겠습니다.
먼저, 코드 편집기에서 C 프로젝트를 생성해야 합니다. ~/project/ 디렉토리 아래에 "main.c"라는 새 파일을 생성하고, 다음 코드를 작성합니다.
#include <stdio.h>
int main()
{
return 0;
}
이 단계에서는 정수 배열, 배열의 크기, 그리고 삭제할 요소의 위치를 입력으로 받는 C 언어 프로그램을 작성합니다. 그런 다음, 해당 요소를 삭제하고 업데이트된 배열을 출력합니다.
#include <stdio.h>
int main()
{
int arr[100], position, c, n;
printf("Enter the number of elements in array: ");
scanf("%d", &n);
printf("Enter %d elements:\n", n);
for(c = 0; c < n; c++)
scanf("%d", &arr[c]);
printf("Enter the location of the element to delete: ");
scanf("%d", &position);
if (position >= n + 1)
printf("Deletion not possible.\n");
else
for (c = position - 1; c < n - 1; c++)
arr[c] = arr[c+1];
printf("The updated array is: ");
for(c = 0; c < n-1; c++)
printf("%d ", arr[c]);
return 0;
}
코드 설명:
arr[100]을 생성합니다.n을 사용자로부터 입력받습니다.scanf 함수를 사용하여 사용자로부터 배열 arr에 입력을 받습니다.printf 문을 사용하여 업데이트된 배열을 출력합니다.이 단계에서는 사용자가 입력한 값을 기반으로 배열 요소를 삭제하는 C 프로그램을 작성합니다.
#include<stdio.h>
int main()
{
int arr[10], element, c, n, pos, found=0;
printf("Enter the number of elements in array: ");
scanf("%d", &n);
printf("Enter %d elements:\n", n);
for (c = 0; c < n; c++)
scanf("%d", &arr[c]);
printf("Enter the element to delete: ");
scanf("%d", &element);
for (c = 0; c < n; c++)
{
if (arr[c] == element)
{
found = 1;
pos = c;
break;
}
}
if (found == 1)
{
for (c = pos; c < n - 1; c++)
arr[c] = arr[c+1];
printf("The updated array is: ");
for (c = 0; c < n - 1; c++)
printf("%d ", arr[c]);
}
else
printf("Element not found in array.");
return 0;
}
코드 설명:
arr[10]을 생성합니다.n에서 추가할 요소의 수를 저장합니다.scanf 함수를 사용하여 n 개의 정수를 하나씩 정수 배열 arr 에 입력받기 위해 for 루프를 사용합니다.pos를 선언합니다.printf 문을 사용하여 업데이트된 배열을 출력합니다.이 랩에서는 C 프로그래밍에서 위치 또는 값을 기준으로 배열에서 요소를 삭제하는 방법을 배웠습니다. 배열에서 요소를 삭제하는 프로그램은 배열, 크기, 삭제할 요소의 위치/값을 입력으로 받습니다. for 루프를 사용하여 배열을 순회하고, 대상 요소의 위치 또는 값을 찾은 다음, 루프를 사용하여 요소를 삭제합니다. 이는 삭제할 요소의 오른쪽에 있는 요소를 배열의 끝까지 왼쪽으로 복사하여 수행됩니다. 삭제 후, 배열 크기는 1 감소합니다.