๐Ÿ‘ฉ‍๐Ÿ’ป ์•Œ๊ณ ๋ฆฌ์ฆ˜/๐Ÿ”  C

[ํ•œ๋น›๋ฏธ๋””์–ด ํ˜ผ๊ณตํ•™์Šต๋‹จ_ํ˜ผ๊ณตC] 6์ฃผ์ฐจ ์Šคํ„ฐ๋”” ch9 ํฌ์ธํ„ฐ

์˜ค๋ธŒ ๐Ÿง™‍โ™‚๏ธ 2024. 2. 18. 16:23

์ €๋ฒˆ์— ํ–ˆ์—ˆ๋˜ ํŒŒํŠธ ๋’ค๋ถ€ํ„ฐ ํ•ด๋ณด๊ฒ ๋‹ค!
 
ํฌ์ธํ„ฐ๋กœ ๊ฐ’์„ ๊ตํ™˜ํ•˜๋Š” ์˜ˆ์ œ๋ฅผ ํ’€์–ด๋ดค๋‹ค.
1์ฐจ๋กœ ์ฝ”๋“œ๋ฅผ ํ›‘์–ด๋ณด๊ณ , 2์ฐจ๋กœ ํ•œ ์ค„์”ฉ ๋œฏ์–ด์„œ ๊ทธ๋ฆผ ๊ทธ๋ฆฌ๋ฉด์„œ ์ดํ•ดํ•ด๋ณด๊ณ , 3์ฐจ๋กœ ์ถœ๋ ฅ๊ฐ’์„ ์ƒ๊ฐํ•˜๋ฉฐ ์†์ฝ”๋”ฉ์„ ํ–ˆ๋‹ค.


๋งˆ์ง€๋ง‰์œผ๋กœ ๋‹ค์‹œ ๋ณต์Šตํ•  ๊ฒธ ์ฝ”๋“œ ์ณ๋ณด๊ธฐ!

 
ํฌ์ธํ„ฐ์˜ ๋Œ€์ž… ๊ทœ์น™
1.ํฌ์ธํ„ฐ๋Š” ๋ณ€์ˆ˜์˜ ํ˜•ํƒœ๊ฐ€ ๊ฐ™์„ ๋•Œ๋งŒ ๋Œ€์ž…ํ•ด์•ผ ํ•œ๋‹ค. (int๋Š” intํ˜•๋ผ๋ฆฌ,double์€ double๋ผ๋ฆฌ)
2.๋ชจ๋“  ์ฃผ์†Œ์™€ ํฌ์ธํ„ฐ์˜ ํฌ๊ธฐ๋Š” ๊ฐ™๋‹ค. 
3. ํ˜• ๋ณ€ํ™˜์„ ์‚ฌ์šฉํ•œ ํฌ์ธํ„ฐ์˜ ๋Œ€์ž…์€ ๊ฐ€๋Šฅํ•˜๋‹ค.
 
ํฌ์ธํ„ฐ๋Š” ํ•จ์ˆ˜ ๊ฐ„์— ํšจ๊ณผ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์–ด ์ž„๋ฒ ๋””๋“œ ํ”„๋กœ๊ทธ๋žจ์— ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•˜๋‹ค. 
์™œ ์ž„๋ฒ ๋””๋“œ๋Š” ํšจ๊ณผ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜์ง€?์— ๋Œ€ํ•œ ์˜๋ฌธ์ด ๋“ค์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ gptํ•œํ…Œ ๋ฌผ์–ด๋ด„

  1. ์ž์› ์ ˆ์•ฝ: ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ์€ ์ฃผ๋กœ ์ž‘๊ณ  ์ œํ•œ๋œ ์ž์›์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ, ํ”„๋กœ์„ธ์„œ ์†๋„, ์ „๋ ฅ ๋“ฑ์ด ๊ทธ ์˜ˆ์ž…๋‹ˆ๋‹ค. ํ•จ์ˆ˜ ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ๊ณต์œ ํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ๊ณ , ๋” ์ ์€ ์ „๋ ฅ์„ ์†Œ๋น„ํ•˜๋ฉฐ ๋” ๋น ๋ฅธ ์‹คํ–‰ ์†๋„๋ฅผ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ๋ชจ๋“ˆํ™”: ํ•จ์ˆ˜ ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ณต์œ ๋ฅผ ํ†ตํ•ด ๋ชจ๋“ˆ ๊ฐ„์˜ ๋…๋ฆฝ์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋ชจ๋“ˆ์€ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ์—๋งŒ ์ ‘๊ทผํ•˜์—ฌ ์ž‘์—…ํ•˜๊ณ , ๋‹ค๋ฅธ ๋ชจ๋“ˆ์˜ ๋‚ด๋ถ€ ๊ตฌํ˜„์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ฝ”๋“œ์˜ ์œ ์ง€๋ณด์ˆ˜์„ฑ๊ณผ ํ™•์žฅ์„ฑ์„ ๋†’์—ฌ์ค๋‹ˆ๋‹ค.
  3. ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ: ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ์€ ์ข…์ข… ์‹ค์‹œ๊ฐ„ ์‘๋‹ต์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํ•จ์ˆ˜ ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ณต์œ ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ „๋‹ฌํ•˜๊ณ  ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด ์‹œ์Šคํ…œ์˜ ์‘๋‹ต ์‹œ๊ฐ„์„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. ํšจ์œจ์ ์ธ ํ†ต์‹ : ํ•จ์ˆ˜ ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ณต์œ ๋Š” ํšจ์œจ์ ์ธ ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ, ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ์—์„œ๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก์— ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœํ† ์ฝœ์˜ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ์ตœ์†Œํ•œ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๋ผ๊ณ  ํ•œ๋‹ค.
 
์ž๋™์ฐจ,์ •์ˆ˜๊ธฐ ๋“ฑ์— ๋Œ€์ž…ํ•ด์„œ ์ƒ๊ฐํ•ด๋ณด์•˜๋‹ค.
1. ์ž๋™์ฐจ์˜ ์†๋ ฅ์„ ์‚ฌ์šฉ์ž๊ฐ€ ์ค„์ด๊ณ ์ž ํ•  ๋•Œ, ์ง€์—ฐ์‹œ๊ฐ„์ด ๊ธธ์–ด์ง€๋ฉด ์‚ฌ๊ณ ๊ฐ€ ๋‚  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.
2. ์ •์ˆ˜๊ธฐ๋Š”  ์‚ฌ์šฉ์ž๊ฐ€ ๋œจ๊ฑฐ์šด ๋ฌผ๊ณผ ์ฐจ๊ฐ€์šด ๋ฌผ์„ ์„ž์–ด๋งˆ์‹œ๊ณ ์ž ํ•  ๋•Œ, ๋œจ๊ฑฐ์šด ๋ฌผ์„ ๋ฉˆ์ถ”๋Š” ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์Œ์—๋„ ๋ฐ˜์‘์ด ๋น ๋ฅด๊ฒŒ ๋‚˜์˜ค์ง€ ์•Š์•„ ์›ํ•˜๋Š” ์–‘๋ณด๋‹ค ๋งŽ์ด ์ถœ๋ ฅ๋œ๋‹ค๋ฉด ์›ํ•˜๋Š” ์˜จ๋„์˜ ๋ฌผ์„ ๋งˆ์‹ค ์ˆ˜ ์—†์„ ๊ฒƒ์ด๋‹ค..
 
์ด๋Ÿฐ ์˜๋ฏธ์—์„œ ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ์™€ ํšจ์œจ์ ์ธ ํ†ต์‹ ์ด ๊ฐ•์กฐ๋˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค.
 
์ž์› ์ ˆ์•ฝ์€ ์ •์ˆ˜๊ธฐ๋‚˜ ์Šค๋งˆํŠธ์›Œ์น˜ ๋“ฑ ํฌ๊ธฐ๊ฐ€ ์ž‘์€ ๊ธฐ๊ธฐ์—์„œ๋„ ์‹œ์Šคํ…œ์ด ํšจ์œจ์ ์œผ๋กœ ๋Œ์•„๊ฐ€์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋Ÿฐ ๋“ฏ ํ•˜๋‹ค. 
 
๋ชจ๋“ˆํ™”์— ๋Œ€ํ•œ ๋ถ€๋ถ„์ด ์ดํ•ด๊ฐ€ ์•ˆ ๊ฐ€์„œ ์กฐ๊ธˆ ๋” ๋ฌผ์–ด๋ดค๋‹ค. 
๋ชจ๋“ˆํ™”๋ž€ ํฐ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์€ ์กฐ๊ฐ์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. ๋ชจ๋“ˆํ™”์˜ ํ•ต์‹ฌ ์•„์ด๋””์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  1. ๊ธฐ๋Šฅ ๋‹จ์œ„ ๋ถ„๋ฆฌ: ๋ชจ๋“ˆํ™”๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ธฐ๋Šฅ์ ์ธ ๋ถ€๋ถ„์œผ๋กœ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋ชจ๋“ˆ์€ ํŠน์ •ํ•œ ์ž‘์—…์ด๋‚˜ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ฐ ๋ชจ๋“ˆ์˜ ์—ญํ• ๊ณผ ์ฑ…์ž„์ด ๋ช…ํ™•ํ•ด์ง€๊ณ , ๊ฐœ๋ฐœ์ž๋“ค์€ ์ž‘์—…์„ ๋ถ„๋‹ดํ•˜๊ฑฐ๋‚˜ ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค.
  2. ๋…๋ฆฝ์„ฑ ์œ ์ง€: ๊ฐ ๋ชจ๋“ˆ์€ ๋‹ค๋ฅธ ๋ชจ๋“ˆ๊ณผ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐœ๋ฐœํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ชจ๋“ˆ ๊ฐ„์˜ ์˜์กด์„ฑ์„ ์ค„์ด๊ณ , ๊ฐœ๋ฐœ๊ณผ ์œ ์ง€๋ณด์ˆ˜๋ฅผ ๊ฐ„ํŽธํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ํ•œ ๋ชจ๋“ˆ์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋”๋ผ๋„ ๋‹ค๋ฅธ ๋ชจ๋“ˆ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  3. ์žฌ์‚ฌ์šฉ์„ฑ: ๋ชจ๋“ˆํ™”๋Š” ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค. ๋น„์Šทํ•œ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•œ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๊ฐ™์€ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐœ๋ฐœ ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•˜๊ณ  ์ฝ”๋“œ์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
  4. ์œ ์ง€๋ณด์ˆ˜์„ฑ ํ–ฅ์ƒ: ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๋ชจ๋“ˆํ™”๋˜๋ฉด ํŠน์ • ๊ธฐ๋Šฅ์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ๊ฐœ์„ ํ•  ๋•Œ ํ•ด๋‹น ๋ชจ๋“ˆ๋งŒ ์ˆ˜์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“ˆ์—๋Š” ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์œผ๋ฏ€๋กœ ์ „์ฒด ์‹œ์Šคํ…œ์„ ํŒŒ์•…ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์‹œ๊ฐ„๊ณผ ๋…ธ๋ ฅ์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„ ๊ทธ๋ž˜์„œ ํ—ค๋”ํŒŒ์ผ์ด๋ž‘ ์†Œ์Šค ํŒŒ์ผ์ด ์กด์žฌํ•˜๊ณ , ํ•จ์ˆ˜๊ฐ€ ์“ฐ์ด๋Š”๊ตฌ๋‚˜..!
์„œ๋กœ ๋–จ์–ด์ ธ์žˆ๋˜ ๊ฐœ๋…๋“ค์ด ์—ฐ๊ฒฐ๋˜์–ด ์ดํ•ด๊ฐ€ ๋๋‹ค. !!
 
ํ‘ธ๋Š” ๊น€์— ๋„์ „ ์˜ˆ์ œ๊นŒ์ง€ ํ’€์—ˆ๋‹ค. (261p)

#include <stdio.h>

void swap(double *pa, double *pb);
void line_up(double *maxp, double* midp, double* minp);

int main(void)
{
	double max, mid, min;

	printf("์‹ค์ˆ˜ ๊ฐ’ 3๊ฐœ ์ž…๋ ฅ: ");
	scanf_s("%lf%lf%lf", &max, &mid, &min);
	line_up(&max, &mid, &min);
	printf("์ •๋ ฌ๋œ ๊ฐ’ ์ถœ๋ ฅ : %.1lf, %.1lf, %.1lf\n", max, mid, min);
	
	return 0;
}

void swap(double* pa, double* pb)
{
	double temp;

	temp = *pa;
	*pa = *pb;
	*pb = temp;
}

void line_up(double* maxp, double* midp, double* minp)
{
    double tem;

    if (*maxp < *midp) {
        tem = *maxp;
        *maxp = *midp;
        *midp = tem;
    }

    if (*maxp < *minp) {
        tem = *maxp;
        *maxp = *minp;
        *minp = tem;
    }

    if (*midp < *minp) {
        tem = *midp;
        *midp = *minp;
        *minp = tem;
    }
	

}