728x90
<C언어 - 두개의 배열를 합쳐 오름차순 정렬하기>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define space 10
void sequence(int a[], int n); // 오름차순 함수
void print_normal(int a[], int n); // 일반 출력함수
int main()
{
int arr_a[space] = { 0 };
int arr_b[space] = { 0 };
int arr_sum[2*space] = { 0 };
int i = 0;
int*p1 = arr_a;
int*p2 = arr_b;
srand((unsigned)time(NULL));
//두개함수를 받아서 합치는 프로그램
i = 0;
while (i < space)
{
*(p1+i) = rand() % 100;
i++;
}
i = 0;
while (i < space)
{
*(p2 + i) = rand() % 100;
i++;
}
for (i = 0; i < space; i++)
{
arr_sum[i] = *(p1 + i);
}
for (i = 0; i < space; i++)
{
arr_sum[i+space] = *(p2 + i);
}
print_normal(arr_a, space);
print_normal(arr_b, space);
print_normal(arr_sum, 2 * space);
sequence(arr_sum, 2 * space);
print_normal(arr_sum, 2 * space);
return 0;
}
void sequence(int a[], int n)
{
//먼저 앞뒤 값비교, 순서틀리면 tmp이용해서 바꾸기
int tmp;
int *p = a;
for (int x = 0; x < n; x++)
{
for (int i = 0; i < n-1; i++)
{
if (*(p + i) > *(p + i + 1))
{
tmp = *(p + i);
*(p + i) = *(p + i + 1);
*(p + i + 1) = tmp;
}
/*
//과정 보여주기
for (int j = 0; j < n; j++)
{
printf("%d ", a[j]);
}
puts("");*/
}
}
}
void print_normal(int a[], int n)
{
int *p = NULL;
for (int i = 0; i < n; i++)
{
p = a + i;
printf("%d ", *p);
}
puts("");
}
|
cs |
(본 프로그램은 저자 본인인 직접만든 프로그램임을 명시합니다.)
(CCL동의로 허락받고 출처를 작성한 사진외는 제 개인사진들 임을 밝힙니다.)
728x90