쉽게 풀어쓴 C언어 EXPRESS(개정 3판) - Chapter 11-3

9.

#include <stdio.h>

int search(int* A, int size, int x);

int main(void) {

int data[10] = {
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
}
;

int index = search(data, 10, 9);

printf("%d\n", index);
return 0;
}

int search(int* A, int size, int x) {

int i;

for (i = 0; i < size; i++) {
if (A[i] == x) 
return i;
}
return -1;
}

10.

#include <stdio.h>

void get_gcd_lcm(int x, int y, int* gcd, int* lcm);

int main(void) {

int x, y, g, l;

printf("두개의 정수를 입력하시오: ");
scanf("%d %d", &x, &y);

get_gcd_lcm(x, y, &g, &l);

printf("최소공배수는 %d입니다.\n", l);
printf("최대공약수는 %d입니다.\n", g);
return 0;
}

void get_gcd_lcm(int org_x, int org_y, int* gcd, int* lcm) {

int x = org_x;
int y = org_y;
int tmp;

while (y != 0) {

tmp = y;
y = x % y;
x = tmp;
}
*gcd = x;
*lcm = org_x * org_y / *gcd;
}

11.

void merge(int left, int mid, int right) {
int i, j, k, l;

i = left;
j = mid + 1;
k = left;

while (i <= mid && j <= right) {

if (list[i] <= list[j])
sorted[k++] = list[i++]; 
else
sorted[k++] = list[j++];
}

if (i > mid)

for (l = j; l <= right; l++)
sorted[k++] = list[l]; 
else
for (l = i; l <= mid; l++)
sorted[k++] = list[l];


for (l = left; l <= right; l++)
list[l] = sorted[l];
}

댓글

이 블로그의 인기 게시물

쉽게 풀어쓴 C언어 EXPRESS(개정 3판) - Chapter 10-3

쉽게 풀어쓴 C언어 EXPRESS(개정 3판) - Chapter 16-1

쉽게 풀어쓴 C언어 EXPRESS(개정 3판) - Chapter 13-2