C언어
-
C언어 도서관 좌석 예약 프로그램Visual Studio/C 실전 2015. 6. 19. 15:58
학교 과제로 하나 만들긴 했는데 소스가 2차원 배열 하나로 만들다보니 쓸 데 없이 길어졌습니다.. 지적 달게 받고 코드 수를 줄일 수 있는 방안을 마련해주시면 적극 수렴하겠습니다. 감사합니다. #include #include #include #include #include void SYSTEM(); void VIEW_SEAT(int chain[7][9]); void SEAT(int chain[7][9], int width, int height); void EXIT(int chain[7][9], int width, int height); main(){ srand(time(NULL)); printf("□□□□□□□□□□□□□□□□□□\n□ 좌석 예약 시스템 ver0.1 □\n□\t\t\t\t □\n□ Pre..
-
C언어 버블 정렬Visual Studio/C 실전 2015. 3. 31. 16:15
버블 정렬은 주어진 파일에서 인접한 두 개의 숫자를 비교하여 그 크기에 따라서 서로 교환하는 방식입니다. 9, 6, 2, 5, 7 이란 숫자가 있습니다. 첫 번째 회전 6, 9, 2, 5, 7 -> 9가 6보다 크므로 서로 교환합니다. 6, 2, 9, 5, 7 -> 9가 2보다 크므로 서로 교환합니다. 6, 2, 5, 9, 7 -> 9가 5보다 크므로 서로 교환합니다. 6, 2, 5, 7, 9 -> 9가 7보다 크므로 서로 교환합니다. 두 번째 회전 2, 6, 5, 7, 9 -> 6이 2보다 크므로 서로 교환합니다. 2, 5, 6, 7, 9 -> 6이 5보다 크므로 서로 교환합니다. 2, 5, 6, 7, 9 -> 6이 7보다 작으므로 그대로 둡니다. 2, 5, 6, 7, 9 -> 7이 6보다 작으므로 그..
-
C언어 선택 정렬Visual Studio/C 실전 2015. 3. 31. 11:17
예를 들어서, 4, 1, 3, 2, 5라는 숫자들이 있는데, 순서를 맞추기 위해 정렬하는 기법 중에 하나입니다. 1회전, 맨 앞의 숫자와 그 다음 숫자를 비교합니다. 1, 4, 3, 2, 5 -> 4가 1보다 크므로 두 숫자의 위치를 변경합니다. 1, 4, 3, 2 ,5 -> 1이 3보다 작으므로 그대로 둡니다. 1, 4, 3, 2, 5 -> 1이 2보다 작으므로 그대로 둡니다. 1, 4, 3, 2, 5 -> 1이 5보다 작으므로 그대로 둡니다. 2회전, 두 번째 숫자와 그 다음 숫자를 비교합니다. 1, 3, 4, 2 ,5 -> 4가 3보다 크므로 두 숫자의 위치를 변경합니다. 1, 2, 4, 3, 5 -> 3이 2보다 크므로 두 숫자의 위치를 변경합니다. 1, 2, 4, 3, 5 -> 2가 5보다 작으..
-
C언어 switchVisual Studio/C 기초 2012. 9. 10. 00:23
if문 같은 제어문은 2개의 값인 참, 또는 거짓으로만 평가되었지만 switch문은 여러 조건에 근거하여 프로그램의 흐름을 제어합니다. C언어에서 제공되는 가장 융통성있는 프로그램 제어문은 switch문이라 할 수 있겠습니다. if문으로 여러 조건으로 제어하려면 if문을 중첩시켜야 하죠. 번거롭기 때문에 switch문이 있는겁니다. 사용 예를 바로 들어보겠습니다. #include main(){ int rep; puts("1과 5사이의 숫자 중 하나를 입력하세요 : "); scanf("%d", &rep); switch(rep) { case 0: break; case 1: { puts("1을 입력하셨군요.\n"); break; } case 2: { puts("2을 입력하셨군요.\n"); break; } ca..
-
C언어 포인터(pointer)Visual Studio/C 기초 2012. 9. 3. 22:53
이번엔 아주아주 중요한 포인터에 대해 알아보겠습니다. 포인터에 대해 먼저, 변수에 선언된 값은 메모리에 저장됩니다. 그 저장된 값의 주소를 가리키는 것을 포인터라 합니다. 컴퓨터의 메모리는 아주 많은 저장 구역으로 구성되고 각각의 위치는 주소에 의해 구분됩니다. 메모리의 주소는 0부터 최대 메모리의 양 까지입니다. 프로그램 내에서 변수의 이름을 사용할 때 변수는 해당 메모리 영역을 자동으로 사용하게 되는데, 실제로 메모리 영역의 주소가 사용되는 것 이지만 프로그래머는 이런 사실을 깨닫지도 못합니다. 어느 변수(pnt)가 있다고 칩시다. 먼저 변수 pnt를 선언을 해봅시다. int pnt; 그다음, pnt의 주소를 가리킬 포인터를 생성시킵니다. int *thr; 포인터는 *를 붙여주면 됩니다.(포인터의 이..
-
C언어 다차원 배열(Array)Visual Studio/C 기초 2012. 9. 3. 17:45
이번엔 다차원 배열에 대해 알아보겠습니다. 말 그대로 여러 차원의 배열입니다. 1차원 배열같은 단차원 배열이 아닌 2차원, 3차원 등등의 배열을 정의할 때 다차원 배열이라 합니다. 1차원 배열의 초기화 먼저, 1차원 배열의 초기화에 대해 알아보겠습니다. for문을 돌려서 초기화 하는 방법도 있지만, 자신이 직접 입력해서 초기화 하는 방법이 있습니다. int array[5]={0,0,0,0,0}; // 이렇게, {안에 배열의 크기만큼 자신이 초기화 하고 싶은 값을 배열의 칸만큼 입력하시면 됩니다. for(int i=0;int
-
C언어 1차원 배열(Array)Visual Studio/C 기초 2012. 8. 29. 00:50
이번엔 C언어 배열에 대해 포스팅하겠습니다. 자바와는 다르게 선언하기 때문에 자바와 병행해서 프로그래밍 하실 경우 헷갈리는 경우가 있으니 유의하시길 바랍니다^^ 먼저, 1차원 배열에 대해 포스팅 할건데요, 선언법은 이렇습니다. int Array[]; (여기서 Array는 배열의 이름입니다. 원하는 이름을 사용하셔도 상관없습니다.) float Array[]; 등등 변수를 선언하듯이 하시면 됩니다. 또, Array[Ar[2]] 라는 배열이 있습니다. 만약 Ar[2]안에 저장되어있는 값이 3이라면 Array[Ar[2]]의 값은 Array[3]과 같은 배열이 됩니다. 반복문을 병용한 예제를 보겠습니다. scanf("%d",&array[i]); // i의 값에 따라 배열의 칸 수가 바뀌죠? 사용자가 입력한 숫자를..