티스토리 뷰
#include "stdafx.h"
#define MAX 100
/*
2014244057 이종민
exceptions: 100번째에 넣을때 idx 99, 100을 참조함 seg fa 귀찮아서 100개 이상 예외처리 안함
중복 허용 여부 = 자기가 맘대로 ; 난 안할꺼 중복예외처리 안함
삭제시 원소값기준
*/
int arr[MAX] = { 0, };
int i, j, k, cnt = 0, idx = 0, find = 0;
void introduction();
void insert();
void del();
void print();
void search();
int main() {
int menu = 0, n = 0;
int temp = 0;
while (menu != 5) {
introduction();
scanf("%d", &menu);
if (menu == 1)
insert();
if (menu == 2) //삭제
del();
if (menu == 3) //출력
print();
if (menu == 4) //탐색
search();
}
return 0;
}
void introduction() {
printf("1. 삽입\n");
printf("2. 삭제\n");
printf("3. 출력\n");
printf("4. 탐색\n");
printf("5. 종료\n");
printf("메뉴를 선택해주세요: ");
}
void insert() {
int n;
printf("삽입할 정수를 입력하세요: ");
scanf("%d", &n);
cnt++;
for (i = 0; i < cnt; i++) {
if (arr[i] <= n) {
idx = i;
}
else if (arr[i] > n) {
idx = i;
break;
}
}
for (j = cnt; j > idx; j--) {
arr[j] = arr[j - 1];
}
arr[idx] = n;
puts("");
}
void del() {
int n;
printf("삭제할 원소를 입력하세요: ");
scanf("%d", &n);
for (i = 0; i < cnt; i++) {
if (arr[i] == n) {
idx = i;
find++;
}
}
if (find == 0) {
printf("입력하신 %d가 배열에 없습니다\n", n);
}
else {
arr[idx] = 0;
cnt--;
for (j = idx; j < cnt; j++) {
arr[j] = arr[j + 1];
}
}
for (k = 0; k < cnt; k++) {
printf("%d ", arr[k]);
}
puts("");
find = 0;
}
void print() {
printf("배열에 있는 원소들 : ");
for (i = 0; i < cnt; i++) {
printf("%d ", arr[i]);
}
puts("");
}
void search() {
int n;
printf("\n탐색할 원소를 입력하세요: ");
scanf("%d", &n);
for (i = 0; i < cnt; i++) {
if (arr[i] == n) {
idx = i;
find++;
}
}
if (find > 0)
printf("%d은(는) arr[%d]에 있습니다.\n", n, idx);
else
printf("%d은(는) 배열에 없습니다.\n");
find = 0;
}
'C, C++ > 데이터구조 & 자료구조' 카테고리의 다른 글
C언어 단순 연결 리스트(singly linked list ) 마지막 삽입, 삭제, 검색, 출력 (0) | 2018.04.08 |
---|---|
C언어 선택 정렬(Selection sort) (0) | 2016.06.06 |
C언어 버블정렬 알고리즘(Bubble sorting algorithm) (0) | 2016.06.06 |
C언어 하노이 타워 알고리즘(Hanoi Tower Algorithm) (0) | 2016.06.06 |
C언어 재귀(Recursive) 피보나치 수열 (0) | 2016.06.06 |
티스토리 방명록
- Total
- Today
- Yesterday
Contact: j0n9m1n1@gmail.com