[공대C언어] C언어

등록일 2003.04.20 한글 (hwp) | 25페이지 | 가격 1,000원

목차

1.두점의 중점구하기
2.비디오 관리 프로그램
3.문자 바꾸기
4.문자열 출력하기
5.날짜출력프로그램
6.삼각형무게중심구하기
7입력된 문자열에서의 알파벳 수 계산
행렬의 덧셈, 뺄셈, 곱셈 연산
데이터 정렬
데이터 이진 검색
년, 월, 일을 입력 받아 해당 요일 구하기
해당하는 날짜의 요일을 출력
* 입력 연도가 윤년인지 아닌지를 검사
* 윤년이면 True(1)를 넘겨주는 함수
적분을 이용한 4분원의 면적 구하기

본문내용

/*
* 데이터 이진 검색
*/
#include <stdio.h>
#include <stdlib.h>

#define MAX 100 /* 자료값의 개수 */

int BiSearch(int query, int array[]);

void main()
{
int data[MAX]; /* 자료값이 저장되는 배열 */
int query; /* 찾고자 하는 값 */
int i, j;
int minIndex; /* 최소값 인덱스 */
int temp; /* 데이터 정렬시에 임시 변수로 사용 */
int count;

/* 배열 초기화 */
for (i = 0; i < MAX; i++)
data[i] = rand() / (RAND_MAX / MAX + 1);

/* 검색을 원하는 값 입력 */
printf("\n검색을 원하는 값을 입력하세요. (1~%d) => ", MAX);
scanf("%d", &query);

/* 배열을 정렬한다. */
for (i = 0; i < MAX - 1; i++) {
minIndex = i;
/* data[i+1]부터 data[MAX-1]까지의 값 중 최소값을 찾는다. */
for (j = i + 1; j < MAX; j++)
if (data[minIndex] > data[j])
minIndex = j;
/* 최소값과 교환한다. */
temp = data[i];
data[i] = data[minIndex];
data[minIndex] = temp;
}

if ((query <= 0) || (query > MAX)) {
printf("\n데이터의 범위를 벗어나는 값입니다.");
return;
}
else if ((query < data[0]) || (query > data[MAX-1])) {
printf("\n검색하는 데이터가 존재하지 않습니다.");
return;
}

/* 정렬된 배열을 출력한다. */
printf("\n정렬된 배열 : \n");
for (i = 0; i < MAX; i++) {
printf("%4d", data[i]);
if ((i + 1) % 10 == 0)
printf("\n");
}

/* 이진 검색 */
count = BiSearch(query, data);
if (count == -1)
printf("\n\n검색하는 데이터가 존재하지 않습니다.");
else
printf("\n\n검색하는 데이터를 %d번의 검색으로 찾았습니다.", count);
}

/*
* 이진 검색 함수
*/
int BiSearch(int query, int array[])
{
int count = 1;
int high, mid, low; /* 상위, 하위, 중간값을 가르키는 변수 */

low = 0;
high = MAX - 1;

while (high > low) /* 오른쪽 구간이 왼쪽 구간보다 큰지를 검사 */
{
mid = (high + low) / 2; /* 중간 위치를 찾음 */
printf("\n%d번째 검색값 : %d", count, array[mid]);
count++;
/* mid 위치에 값이 찾으려는 값과 같은 경우 */
if (query == array[mid]) return (count-1);
/* mid 위치에 값보다 찾으려는 값이 작은 경우 */
else if (query < array[mid])
high = mid - 1;
else /* mid 위치에 값보다 찾으려는 값이 큰 경우 */
low = mid + 1;
}
<font color=aaaaff>..</font>
      최근 구매한 회원 학교정보 보기
      1. 최근 2주간 다운받은 회원수와 학교정보이며
         구매한 본인의 구매정보도 함께 표시됩니다.
      2. 매시 정각마다 업데이트 됩니다. (02:00 ~ 21:00)
      3. 구매자의 학교정보가 없는 경우 기타로 표시됩니다.
      최근 본 자료더보기
      추천도서