CHAPTER 08 - 0083tony/Core-C-Programming GitHub Wiki
- 1๋ฒ ๋ฌธ์
ํฌ๊ธฐ๊ฐ 3์ธ doubleํ ๋ฐฐ์ด์ ์์์ ์ฃผ์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ
#include<stdio.h>
int main(void) {
double arr[3];
double* p;
for (int i = 0; i < 3; i++) {
p = &arr[i];
// ์ฃผ์๋ %p๋ก ์ถ๋ ฅ
printf("x[%d]์ ์ฃผ์: %p\n", i, p);
}
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
x[0]์ ์ฃผ์: 006FFB94
x[1]์ ์ฃผ์: 006FFB9C
x[2]์ ์ฃผ์: 006FFBA4
- 2๋ฒ ๋ฌธ์
ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํด ๋ฐฐ์ด์ ์์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ
#include<stdio.h>
int main(void) {
double arr[10] = { 0.1,2,3.4,5.2,4.5,7.8,9.7,1.4,6.6,7.2 };
double* p;
for (int i = 0; i < 10; i++) {
p = &arr[i];
printf("%6.2f", *p);
}
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
0.10 2.00 3.40 5.20 4.50 7.80 9.70 1.40 6.60 7.20
- 3๋ฒ ๋ฌธ์
๋ฐฐ์ด์ ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํด ์์๋๋ก ์ถ๋ ฅํ๊ณ ์ญ์์ผ๋ก ํ๋ฒ ๋ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ
#include<stdio.h>
int main(void) {
int arr[10] = { 44,32,65,23,45,76,77,89,23,45 };
int* p;
p = &arr[0];
printf("๋ฐฐ์ด: ");
for (int i = 0; i < 10; i++) {
printf("%d ", *p);
p++;
}
printf("\n์ญ์: ");
for (int i = 0; i < 10; i++) {
p--;
printf("%d ", *p);
}
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
๋ฐฐ์ด: 44 32 65 23 45 76 77 89 23 45
์ญ์: 45 23 89 77 76 45 23 65 32 44
- 4๋ฒ ๋ฌธ์
ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํด ๋ฐฐ์ด์ ํ๊ท ๊ฐ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ
#include<stdio.h>
int main(void) {
double arr[10] = { 0.1,2,3.4,5.2,4.5,7.8,9.7,1.4,6.6,7.2 };
double* p;
double avg = 0;
printf("๋ฐฐ์ด: ");
// ๋ฐฐ์ด์ ์์๋ฅผ ์ถ๋ ฅํ๊ณ ํ๊ท ๊ฐ์ avg์ ์ ์ฅ
for (int i = 0; i < 10; i++) {
printf("%.2f ", arr[i]);
p = &arr[i];
avg = *p + avg;
}
printf("\nํ๊ท : %f", avg / 10);
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
๋ฐฐ์ด: 0.10 2.00 3.40 5.20 4.50 7.80 9.70 1.40 6.60 7.20
ํ๊ท : 4.790000
- 5๋ฒ ๋ฌธ์
ํฌ์ธํฐ๋ก ๋งค๊ฐ๋ณ์๋ฅผ ์ ๋ฌํด ๋ฑ์ฐจ์์ด์ ์ฐ์ฐํ๋ ํจ์ ํ๋ก๊ทธ๋จ
#include<stdio.h>
void arith_seq(int, int);
int main(void) {
int arr[10];
int a, b, * p;
printf("์ฒซ๋ฒ์งธ ํญ? ");
scanf_s("%d", &a);
printf("๊ณต์ฐจ? ");
scanf_s("%d", &b);
// arr[0] = ์ฒซ๋ฒ์งธ ํญ, ํฌ์ธํฐ p = arr[0]
arr[0] = a;
p = &arr[0];
// ํฌ์ธํฐ p, ๊ณต์ฐจ b๋ฅผ ๋งค๊ฐ๋ณ์๋ก ํจ์์ ์ ๋ฌ
arith_seq(*p, b);
return 0;
}
void arith_seq(int p, int num) {
printf("๋ฑ์ฐจ์์ด: ");
// ๋ฑ์ฐจ์์ด ์ฐ์ฐ, ์ถ๋ ฅ
for (int i = 0; i < 10; i++) {
printf("%d ", p);
p = p + num;
}
}
[์คํ ๊ฒฐ๊ณผ]
์ฒซ๋ฒ์งธ ํญ? 1
๊ณต์ฐจ? 7
๋ฑ์ฐจ์์ด: 1 8 15 22 29 36 43 50 57 64
- 6๋ฒ ๋ฌธ์
๋ฐฐ์ด์ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ๋ฐ์ ๋ฐฐ์ด์ ์ต๋๊ฐ๊ณผ ์ต์๊ฐ์ ๊ตฌํ๋ ํจ์ ํ๋ก๊ทธ๋จ
#include<stdio.h>
void get_min_max(int*);
int main(void) {
int arr[10] = { 23,45,62,12,99,83,23,50,72,37 };
printf("๋ฐฐ์ด: ");
// ๋ฐฐ์ด์ ์์๋ฅผ ์ถ๋ ฅ
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
// ๋ฐฐ์ด์ ๋งค๊ฐ๋ณ์๋ก ํจ์์ ์ ๋ฌ
get_min_max(arr);
return 0;
}
void get_min_max(int* arr) {
// ๋์๋น๊ต๋ฅผ ํ๊ธฐ ์ํด max, min์ ์ด๊ธฐ๊ฐ์ arr[0]
int max = arr[0], min = arr[0];
// ๋ฐฐ์ด์ ์์๋ฅผ ๋์๋น๊ต ์์ผ๋ฉด min ํฌ๋ฉด max์ ์ ์ฅ
for (int i = 0; i < 10; i++) {
if (min >= arr[i]) {
min = arr[i];
}
if (max <= arr[i]) {
max = arr[i];
}
}
printf("\n์ต๋๊ฐ: %d\n", max);
printf("์ต์๊ฐ: %d\n", min);
}
[์คํ ๊ฒฐ๊ณผ]
๋ฐฐ์ด: 23 45 62 12 99 83 23 50 72 37
์ต๋๊ฐ: 99
์ต์๊ฐ: 12
- 7๋ฒ ๋ฌธ์
ํฌ๊ธฐ๊ฐ 10์ธ ์ค์ํ ๋ฐฐ์ด์ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌํด ์ญ์์ผ๋ก ์ถ๋ ฅํ๋ ํจ์ ํ๋ก๊ทธ๋จ
#include<stdio.h>
void reverse_array(double* arr) {
double* p = &arr[10];
printf("\n์ญ์: ");
for (int i = 0; i < 10; i++) {
p--;
printf("%.1f ", *p);
}
}
int main(void) {
double arr[10] = { 1.2,3.1,4.3,4.5,6.7,2.3,3.8,7.9,2.3,5.8 };
printf("๋ฐฐ์ด: ");
for (int i = 0; i < 10; i++) {
printf("%.1f ", arr[i]);
}
// ๋ฐฐ์ด์ ๋งค๊ฐ๋ณ์๋ก ํจ์์ ์ ๋ฌ
reverse_array(arr);
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
๋ฐฐ์ด: 1.2 3.1 4.3 4.5 6.7 2.3 3.8 7.9 2.3 5.8
์ญ์: 5.8 2.3 7.9 3.8 2.3 6.7 4.5 4.3 3.1 1.2
- 8๋ฒ ๋ฌธ์
ํฌ๊ธฐ๊ฐ 20์ธ ๋ฐฐ์ด์ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ๋ฐ์ ์ ๋ ฅ๋ฐ์ ์ ์๋ก ์ฑ์ฐ๋ ํจ์ ํ๋ก๊ทธ๋จ
#include<stdio.h>
void fill_array(int* parr, int* num) {
// ํฌ์ธํฐ ์ญ์ฐธ์กฐ ์ฃผ์์ ๊ฐ์ ์ ์ฅ
*parr = *num;
}
int main(void) {
int arr[20];
int num;
printf("๋ฐฐ์ด์ ์์์ ์ ์ฅํ ๊ฐ? ");
scanf_s("%d", &num);
printf("๋ฐฐ์ด: ");
for (int i = 0; i < 20; i++) {
fill_array(arr, &num);
printf("%d ", *arr);
}
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
๋ฐฐ์ด์ ์์์ ์ ์ฅํ ๊ฐ? 7
๋ฐฐ์ด: 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7
- 9๋ฒ ๋ฌธ์
4ํ 5์ด์ 2์ฐจ์ ๋ฐฐ์ด์ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌํ๊ณ ์ ๋ ฅ๋ฐ์ ๊ฐ์ผ๋ก 2์ฐจ์ ๋ฐฐ์ด์ ์ฑ์ฐ๋ ํจ์ ํ๋ก๊ทธ๋จ
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void fill_array_2D(int(*arr)[5], int* num) {
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 5; j++) {
arr[i][j] = *num;
printf("%d ", arr[i][j]);
}
printf("\n");
}
}
int main(void) {
int arr[4][5];
int num;
printf("๋ฐฐ์ด์ ์์์ ์ ์ฅํ ๊ฐ? ");
scanf("%d", &num);
// 2์ฐจ์ ๋ฐฐ์ด๊ณผ num์ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ
fill_array_2D(arr, &num);
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
๋ฐฐ์ด์ ์์์ ์ ์ฅํ ๊ฐ? 3
3 3 3 3 3
3 3 3 3 3
3 3 3 3 3
3 3 3 3 3
- 10๋ฒ ๋ฌธ์
3x3 ํ๋ ฌ์ ํฉ์ ๊ตฌํ๋ ํจ์ ํ๋ก๊ทธ๋จ
#include<stdio.h>
void add_matrix(int(*arr)[3], int(*brr)[3]) {
printf("X+Y ํ๋ ฌ:\n");
// 2์ฐจ์ ๋ฐฐ์ด์ ํฉ์ ๊ตฌํ๊ณ ์ถ๋ ฅ
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
printf("%4d", arr[i][j] + brr[i][j]);
}
printf("\n");
}
}
int main(void) {
int arr[3][3] = { {10,20,30},{40,50,60},{70,80,90} };
int brr[3][3] = { {9,8,7},{6,5,4},{3,2,1} };
printf("X ํ๋ ฌ:\n");
// X 2์ฐจ์ ๋ฐฐ์ด ์ถ๋ ฅ
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
printf("%3d ", arr[i][j]);
}
printf("\n");
}
printf("Y ํ๋ ฌ:\n");
// Y 2์ฐจ์ ๋ฐฐ์ด ์ถ๋ ฅ
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
printf("%3d ", brr[i][j]);
}
printf("\n");
}
// X,Y 2์ฐจ์ ๋ฐฐ์ด์ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ
add_matrix(arr, brr);
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
X ํ๋ ฌ:
10 20 30
40 50 60
70 80 90
Y ํ๋ ฌ:
9 8 7
6 5 4
3 2 1
X+Y ํ๋ ฌ:
19 28 37
46 55 64
73 82 91
- 11๋ฒ ๋ฌธ์
ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํด ์ ๋ ฅ๋ฐ์ ๊ฐ๋ก, ์ธ๋ก์ ๊ธธ์ด๋ฅผ ํจ์๋ก ์ ๋ฌํด ์ง์ฌ๊ฐํ์ ๋์ด์ ๋๋ ๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ
#include<stdio.h>
void get_rect_info(int* pa, int* pb) {
int area, girth;
// ๋์ด, ๋๋ ๊ณ์ฐ
area = (*pa) * (*pb);
girth = (*pa + *pb) * 2;
printf("๋์ด: %d, ๋๋ : %d", area, girth);
}
int main(void) {
int a, b;
printf("๊ฐ๋ก? ");
scanf_s("%d", &a);
printf("์ธ๋ก? ");
scanf_s("%d", &b);
int* pa = &a;
int* pb = &b;
// ํฌ์ธํฐ pa,pb๋ฅผ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ
get_rect_info(pa, pb);
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
๊ฐ๋ก? 10
์ธ๋ก? 20
๋์ด: 200, ๋๋ : 60
- 12๋ฒ ๋ฌธ์
์ ์ํ ๋ฐฐ์ด๊ณผ ํค ๊ฐ์ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ๋ฐ์ ํค ๊ฐ์ ๋ชจ๋ ์ฐพ์ ๋ฐฐ์ด์ ์ ์ฅํด ๋ฆฌํดํ๋ ํจ์ ํ๋ก๊ทธ๋จ
#include<stdio.h>
int find_all_in_array(int* arr, int size, int key) {
int count = 0;
// key๊ฐ๊ณผ ๋์ผํ ๋ฐฐ์ด์์ ๋ฐ๊ฒฌ์ index๋ฅผ arr์ ์ ์ฅ ํ count++
for (int i = 0; i < size; i++) {
if (arr[i] == key) {
arr[count] = i;
count++;
}
}
return count;
}
int main(void) {
int arr[10] = { 12,45,62,12,99,83,23,12,72,37 };
int key, index;
int size = 10; // ๋ฐฐ์ด์ ํฌ๊ธฐ
for (int i = 0; i < 10; i++) {
printf("%3.d", arr[i]);
}
printf("\n์ฐพ์ ๊ฐ? ");
scanf_s("%d", &key);
// ๋ฐฐ์ด, ๋ฐฐ์ด์ ํฌ๊ธฐ, key๊ฐ์ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ
index = find_all_in_array(arr, size, key);
printf("์ฐพ์ ํญ๋ชฉ์ ๋ชจ๋ %d๊ฐ์
๋๋ค.\n", index);
printf("์ฐพ์ ํญ๋ชฉ์ ์ธ๋ฑ์ค: ");
// ํญ๋ชฉ์ ์ธ๋ฑ์ค ์ถ๋ ฅ
for (int i = 0; i < index; i++) {
printf("%3d", arr[i]);
}
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
12 45 62 12 99 83 23 12 72 37
์ฐพ์ ๊ฐ? 12
์ฐพ์ ํญ๋ชฉ์ ๋ชจ๋ 3๊ฐ์
๋๋ค.
์ฐพ์ ํญ๋ชฉ์ ์ธ๋ฑ์ค: 0 3 7
- 13๋ฒ ๋ฌธ์
ํฌ๊ธฐ๊ฐ 10์ธ 2๊ฐ์ ์ ์ํ ๋ฐฐ์ด์ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ๋ฐ์ ๋ ๋ฐฐ์ด์ ์์๋ค์ ๊ฐ์ ๋ง๋ฐ๊พธ๋ ํจ์ ํ๋ก๊ทธ๋จ
#include<stdio.h>
void swap_array(int* arr, int* brr) {
int temp[10];
// temp์ ์์๋ก arr๋ฅผ ์ ์ฅ
for (int i = 0; i < 10; i++) {
temp[i] = arr[i];
}
// a๋ฐฐ์ด์ b๋ฐฐ์ด์ ์ ์ฅํ๊ณ , temp์ ์ ์ฅ๋ a๋ฐฐ์ด์ b๋ฐฐ์ด๋ก ์ ์ฅ
for (int i = 0; i < 10; i++) {
arr[i] = brr[i];
brr[i] = temp[i];
}
}
int main(void) {
int arr[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int brr[10] = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
printf("a:");
// a๋ฐฐ์ด์ ์์ ์ถ๋ ฅ
for (int i = 0; i < 10; i++) {
printf("%3d", arr[i]);
}
printf("\nb:");
// b๋ฐฐ์ด์ ์์ ์ถ๋ ฅ
for (int i = 0; i < 10; i++) {
printf("%3d", brr[i]);
}
printf("\n<< swap_array ํธ์ถ ํ >>\n");
// a,b ๋ฐฐ์ด์ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ
swap_array(arr, brr);
printf("a:");
// a๋ฐฐ์ด์ ์์ ์ถ๋ ฅ
for (int i = 0; i < 10; i++) {
printf("%3d", arr[i]);
}
printf("\nb:");
// b๋ฐฐ์ด์ ์์ ์ถ๋ ฅ
for (int i = 0; i < 10; i++) {
printf("%3d", brr[i]);
}
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
a: 0 1 2 3 4 5 6 7 8 9
b: 9 8 7 6 5 4 3 2 1 0
<< swap_array ํธ์ถ ํ >>
a: 9 8 7 6 5 4 3 2 1 0
b: 0 1 2 3 4 5 6 7 8 9
- 14๋ฒ ๋ฌธ์
0 ~ 9 ์ฌ์ด์ ๋๋ค๊ฐ์ ํ์ ๋งํผ 0 ~ 99 ์ฌ์ด์ ๋์๋ฅผ ํฌ๊ธฐ๊ฐ 10์ธ ์ ์ํ ๋ฐฐ์ด์ ์ ์ฅํ๊ณ ์ถ๋ ฅ์ ๋ฐ๋ณตํ๋ ํ๋ก๊ทธ๋จ
#include<stdio.h>
#include<stdlib.h> // srand(), rand()ํจ์
#include<time.h> // time()ํจ์
void rand_array(int* arr) {
for (int i = 0; i < 10; i++) {
// ํฌ๊ธฐ๊ฐ 10์ธ ๋ฐฐ์ด์ 0~99 ์ฌ์ด์ ๋์๋ก ์ฑ์
arr[i] = rand() % 100;
}
}
int main(void) {
srand(time(NULL)); // ํญ์ ๋ค๋ฅธ ๋์๋ฅผ ์ป์ ์ ์๋ค
int arr[10];
int count = rand() % 10; // count = 0~9 ์ฌ์ด์ ๋์
printf("count = %d\n", count);
// count๋ฒ ๋งํผ ๋ฐ๋ณต
for (int i = 0; i < count; i++) {
// arr๋ฅผ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ
rand_array(arr);
// arr์ ์์๋ฅผ ์ถ๋ ฅ
for (int j = 0; j < 10; j++) {
printf("%4d", arr[j]);
}
printf("\n");
}
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
count = 5
83 35 70 60 10 89 25 16 26 66
79 42 66 83 13 32 77 53 3 30
66 31 41 41 23 56 38 47 32 55
56 50 45 76 43 83 16 77 25 41
80 21 22 90 71 43 78 38 92 98
- 15๋ฒ ๋ฌธ์
ํฌ๊ธฐ๊ฐ 10์ธ ๋ฐฐ์ด์ 0~99 ์ฌ์ด์ ๋์๋ก ์ฑ์ฐ๊ณ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํด ์ถ๋ ฅํ๋ ํจ์ ํ๋ก๊ทธ๋จ
#include<stdio.h>
#include<stdlib.h> // srand(), rand() ํจ์
#include<time.h> // time() ํจ์
void sort_array(int* arr) {
int temp;
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 9; j++) {
if (arr[j] > arr[j + 1]) {
// ๋์๋น๊ต๋ฅผ ํตํด ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main(void) {
srand(time(NULL));// ํญ์ ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ์ป์
int arr[10];
printf("์ ๋ ฌ ์ :");
for (int i = 0; i < 10; i++) {
// 0~99 ์ฌ์ด์ ๋์๋ฅผ arr[i]์ ์ ์ฅ
arr[i] = rand() % 100;
printf("%3d", arr[i]);
}
sort_array(arr);
printf("\n์ ๋ ฌ ํ:");
for (int i = 0; i < 10; i++) {
printf("%3d", arr[i]);
}
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
์ ๋ ฌ ์ : 83 37 10 60 95 26 8 55 22 53
์ ๋ ฌ ํ: 8 10 22 26 37 53 55 60 83 95
- 16๋ฒ ๋ฌธ์
0~99 ์ฌ์ด์ ๋์๋ฅผ ํฌ๊ธฐ๊ฐ 10์ธ ๋ฐฐ์ด์ ์ฑ์ฐ๊ณ ์ค๋ฆ์ฐจ์๊ณผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํด ์ถ๋ ฅํ๋ ํจ์
#include<stdio.h>
#include<stdlib.h>// srand(), rand()ํจ์
#include<time.h>// time() ํจ์
#define ASCENDING 0
#define DESENDING 1
void sort_array_with_order(int* arr) {
int temp;
// 0์ด ์๋๋ฉด #if ~ #endif ๊น์ง ์ปดํ์ผ ๋ฌด์
#if(ASCENDING == 0)
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 9; j++) {
/* ๋์๋น๊ต๋ฅผ ํตํด ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ
ex) arr[1]๊ฐ arr[2]๋ณด๋ค ํฌ๋ฉด temp์ arr[1]์ ์ ์ฅํ๊ณ arr[1]์ arr[2]๋ฅผ ์ ์ฅํ๋ค
๊ทธ๋ฆฌ๊ณ arr[2]์ ๋ฏธ๋ฆฌ ์ ์ฅํด๋ temp์ ๊ฐ(์ด๊ธฐ์ arr[1])์ ์ ์ฅํจ*/
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
printf("\n์ค๋ฆ์ฐจ์ ์ ๋ ฌ ํ:");
for (int i = 0; i < 10; i++) {
printf("%3d", arr[i]);
}
#endif
// 1์ด ์๋๋ฉด #if ~ #endif ๊น์ง ์ปดํ์ผ ๋ฌด์
#if(DESENDING == 1)
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 9; j++) {
// ๋์๋น๊ต๋ฅผ ํตํด ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ
if (arr[j] < arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
printf("\n๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ ํ:");
for (int i = 0; i < 10; i++) {
printf("%3d", arr[i]);
}
#endif
}
int main(void) {
srand(time(NULL));// ํญ์ ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ์ป์
int arr[10];
printf("์ ๋ ฌ ์ :");
for (int i = 0; i < 10; i++) {
// 0~99 ์ฌ์ด์ ๋์๋ฅผ arr[i]์ ์ ์ฅ
arr[i] = rand() % 100;
printf("%3d", arr[i]);
}
sort_array_with_order(arr); //๋ฐฐ์ด์ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
์ ๋ ฌ ์ : 25 0 42 74 78 3 87 48 34 50
์ค๋ฆ์ฐจ์ ์ ๋ ฌ ํ: 0 3 25 34 42 48 50 74 78 87
๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ ํ: 87 78 74 50 48 42 34 25 3 0
- 17๋ฒ ๋ฌธ์
๋ฐฐ์ด์ ์ ์๋ฅผ ์ ๋ ฅ๋ฐ์ ์ ์ฅํ๊ณ ์์์ ์ค๋ณต์ ํ์ฉํ๋ ํจ์ ํ๋ก๊ทธ๋๋ฐ
#include<stdio.h>
int add_to_multiset(int* arr, int size, int num) {
// ๋ฐฐ์ด์ ํฌ๊ธฐ 10๋ณด๋ค ์
๋ ฅํ ํ์๊ฐ ์์ผ๋ฉด num์ ๋ฐฐ์ด์ ์ ์ฅ
if (size < 10) {
arr[size] = num;
return 1;
}
else return 0;
}
int main(void) {
int arr[10];
int num, size = 0;
// ๋ฌดํ๋ฃจํ
for (;;) {
printf("๋ฐฐ์ด์ ์ถ๊ฐํ ์์? ");
scanf_s("%d", &num);
// ๋ฆฌํด๊ฐ์ด 1์ด๋ฉด ์์๋ฅผ ์ ์ฅํ๊ณ ์ถ๋ ฅ
if (add_to_multiset(arr, size, num) == 1) {
for (int i = 0; i <= size; i++) {
printf("%d ", arr[i]);
}
size++;
printf("\n");
}// ๋ฆฌํด๊ฐ์ด 1์ด ์๋๋ฉด ์ข
๋ฃ
else
break;
}
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
๋ฐฐ์ด์ ์ถ๊ฐํ ์์? 10
10
๋ฐฐ์ด์ ์ถ๊ฐํ ์์? 20
10 20
๋ฐฐ์ด์ ์ถ๊ฐํ ์์? 30
10 20 30
๋ฐฐ์ด์ ์ถ๊ฐํ ์์? 10
10 20 30 10
๋ฐฐ์ด์ ์ถ๊ฐํ ์์? 40
10 20 30 10 40
๋ฐฐ์ด์ ์ถ๊ฐํ ์์?
- 18๋ฒ ๋ฌธ์
๋ฐฐ์ด์ ์ ์๋ฅผ ์ ๋ ฅ๋ฐ์ ์ ์ฅํ๊ณ ์์์ ์ค๋ณต์ ํ์ฉํ์ง ์๋ ํจ์ ํ๋ก๊ทธ๋๋ฐ
#include<stdio.h>
int add_to_set(int* arr, int size, int num) {
// ๋ฐฐ์ด์ ํฌ๊ธฐ 10๋ณด๋ค ์
๋ ฅํ ํ์๊ฐ ์์ผ๋ฉด num์ ๋ฐฐ์ด์ ์ ์ฅ
if (size < 10) {
arr[size] = num;
return 1;
}
else return 0;
}
int main(void) {
int arr[10];
int num, size = 0;
for (;;) {
printf("๋ฐฐ์ด์ ์ถ๊ฐํ ์์? ");
scanf_s("%d", &num);
// ๋ฆฌํด๊ฐ์ด 1์ด๋ฉด ์์๋ฅผ ์ ์ฅํ๊ณ ์ถ๋ ฅ
if (add_to_set(arr, size, num) == 1) {
for (int n = 0; n < size; n++) {
// ๋ฐฐ์ด์ ๊ฐ์ ์์๊ฐ ์กด์ฌํ๋ฉด index๋ฅผ ์ถ๋ ฅํ๊ณ ์ ์ฅํ์ง ์์
if (arr[n] == arr[size]) {
printf("ํด๋น ์์๊ฐ ์ด๋ฏธ [%d]์ ์กด์ฌํฉ๋๋ค.\n", n);
size--;
}
}
// ๋ฐฐ์ด์ ์์๋ค์ ์ถ๋ ฅ
for (int j = 0; j <= size; j++) {
printf("%d ", arr[j]);
}
printf("\n");
size++;
}
else
break;
}
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
๋ฐฐ์ด์ ์ถ๊ฐํ ์์? 10
10
๋ฐฐ์ด์ ์ถ๊ฐํ ์์? 20
10 20
๋ฐฐ์ด์ ์ถ๊ฐํ ์์? 30
10 20 30
๋ฐฐ์ด์ ์ถ๊ฐํ ์์? 10
ํด๋น ์์๊ฐ ์ด๋ฏธ [0]์ ์กด์ฌํฉ๋๋ค.
10 20 30
๋ฐฐ์ด์ ์ถ๊ฐํ ์์?