Created
April 10, 2020 08:12
-
-
Save dalcon10028/826b1bff3539f7e47d5bb2be74015d75 to your computer and use it in GitHub Desktop.
자료구조 7주차 레포트
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #include <stdio.h> | |
| int num[5000]; | |
| int flag=-1; | |
| /* 함수를 미리정의 함으로써 함수의 위치를 자유로히 할 수 있다 */ | |
| int menu(void); | |
| void all_numbers(void); void add_number(void); void delete_number(void); void bubbleSort(void); | |
| void main(void){ | |
| int choice; | |
| do { | |
| choice = menu(); /* 선택한 메뉴를 치환 */ | |
| switch (choice) { | |
| case 1: all_numbers(); /* 전체 배열 보기 */ | |
| break; | |
| case 2: add_number(); /* 숫자 입력 */ | |
| break; | |
| case 3: delete_number(); /* 숫자 삭제 */ | |
| break; | |
| } | |
| printf("\n"); | |
| } while (choice != 4); | |
| } | |
| /* 사용자가 메뉴를 선택하여 선택한 번호를 반환하는 함수. */ | |
| int menu(void) { | |
| int i; | |
| printf("정수형 배열의 입력, 삭제 프로그램\n"); | |
| printf("1.전체 배열 보기\n"); | |
| printf("2.숫자 입력\n"); | |
| printf("3.숫자 삭제\n"); | |
| printf("4.종료\n"); | |
| do { | |
| printf("번호를 선택하세요: "); | |
| scanf("%d",&i); /* 사용자가 입력한 아스키 문자를 정수로 저장 */ | |
| printf("\n"); | |
| } while (i < 1 || i>4); /* 1부터 4까지만 입력하게 함 */ | |
| return i; /* 사용자가 선택한 메뉴 번호를 반환 */ | |
| } | |
| void all_numbers(void){ | |
| int i; | |
| for (i=0; i<=flag; i++) | |
| printf("num[%d]는 %d 입니다.\n", i, num[i]); | |
| } | |
| void add_number(void){ | |
| int newNum; | |
| printf("추가할 숫자를 입력해주세요 : "); | |
| scanf("%d", &newNum); | |
| num[++flag] = newNum; | |
| bubbleSort(); | |
| } | |
| void delete_number(void){ | |
| int idx, i; | |
| while(1){ | |
| printf("삭제할 숫자의 인덱스를 입력해주세요(인덱스는 0부터 시작입니다.) : "); | |
| scanf("%d", &idx); | |
| if(idx>flag){ | |
| printf("존재하지 않는 인덱스 입니다.\n"); | |
| continue; | |
| } | |
| else if(idx==flag){ | |
| flag--; | |
| break; | |
| } | |
| else{ | |
| for( i=idx; i<flag; i++ ) | |
| num[i]=num[i+1]; | |
| flag--; | |
| break; | |
| } | |
| } | |
| } | |
| void bubbleSort(void){ | |
| int i, j, temp; | |
| for ( i=0; i<flag; i++ ) | |
| for ( j=i+1; j<=flag; j++ ) | |
| if (num[i]>num[j]) { | |
| temp = num[i]; | |
| num[i] = num[j]; | |
| num[j] = temp; | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment