티스토리 뷰

#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;

}


댓글
댓글쓰기 폼