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
๋ฐฐ์—ด์— ์ถ”๊ฐ€ํ•  ์›์†Œ?
โš ๏ธ **GitHub.com Fallback** โš ๏ธ