๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
6. CS ๊ธฐ์ดˆ ๐Ÿ“š/Linux & Unix ๐Ÿง

[Linux/Unix][1] ํ™”์”จ(Fahrenheit) -> ์„ญ์”จ(Celsius)๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ‘œ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” C ํ”„๋กœ๊ทธ๋žจ

by lxvxxu 2025. 10. 20.

 

ํŒŒ์ผ ์ƒ์„ฑ&์ปดํŒŒ์ผํ•˜๊ธฐ

vi [ํŒŒ์ผ๋ช…].c

[ESC] -> :wq

gcc -o [ํŒŒ์ผ๋ช…] [ํŒŒ์ผ๋ช…].c

./[ํŒŒ์ผ๋ช…]

 

๊ณผ์ œ Week01

ํ™”์”จ(Fahrenheit) -> ์„ญ์”จ(Celsius)๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ‘œ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” C ํ”„๋กœ๊ทธ๋žจ

๐Ÿ” ๊ธฐ๋Šฅ ์„ค๋ช…

์ด ํ”„๋กœ๊ทธ๋žจ์€ 0°F์—์„œ 300°F๊นŒ์ง€ 20°F์”ฉ ์ฆ๊ฐ€์‹œํ‚ค๋ฉฐ,
๊ฐ ํ™”์”จ ์˜จ๋„๋ฅผ ์„ญ์”จ๋กœ ๋ณ€ํ™˜ํ•ด ํ‘œ ํ˜•ํƒœ๋กœ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

#include <stdio.h>

/* print Fahrenheit-Celsius table
   for fahr = 0, 20, ..., 300 */
main()
{
    int fahr, celsius;
    int lower, upper, step;

    lower = 0;     /* lower limit of temperature table */
    upper = 300;   /* upper limit */
    step  = 20;    /* step size */

    fahr = lower;
    while (fahr <= upper) {
        celsius = 5 * (fahr - 32) / 9;
        printf("%d\t%d\n", fahr, celsius);
        fahr = fahr + step;
    }
}

๐Ÿง  ์ฝ”๋“œ ๋ถ„์„ (์ค„ ๋‹จ์œ„๋กœ)

์ฝ”๋“œ์„ค๋ช…
#include <stdio.h> ํ‘œ์ค€ ์ž…์ถœ๋ ฅ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํฌํ•จ (printf() ์‚ฌ์šฉ์„ ์œ„ํ•ด ํ•„์š”)
int fahr, celsius; ํ™”์”จ์™€ ์„ญ์”จ ๊ฐ’์„ ์ €์žฅํ•  ์ •์ˆ˜ํ˜• ๋ณ€์ˆ˜ ์„ ์–ธ
int lower, upper, step; ๋ณ€ํ™˜ํ•  ๋ฒ”์œ„์™€ ๊ฐ„๊ฒฉ์„ ์ง€์ •ํ•  ๋ณ€์ˆ˜ ์„ ์–ธ
lower = 0; ์‹œ์ž‘ ์˜จ๋„ (ํ™”์”จ 0๋„)
upper = 300; ์ข…๋ฃŒ ์˜จ๋„ (ํ™”์”จ 300๋„)
step = 20; ์ฆ๊ฐ€ ๊ฐ„๊ฒฉ (20°F๋งˆ๋‹ค ๊ณ„์‚ฐ)
fahr = lower; ๋ฐ˜๋ณต๋ฌธ์˜ ์‹œ์ž‘๊ฐ’ ์„ค์ •
while (fahr <= upper) fahr๊ฐ€ 300 ์ดํ•˜์ผ ๋™์•ˆ ๋ฐ˜๋ณต
celsius = 5 * (fahr - 32) / 9; ํ™”์”จ๋ฅผ ์„ญ์”จ๋กœ ๋ณ€ํ™˜ (๊ณต์‹ ์‚ฌ์šฉ)
printf("%d\t%d\n", fahr, celsius); ํ˜„์žฌ ํ™”์”จ ๊ฐ’๊ณผ ๋ณ€ํ™˜๋œ ์„ญ์”จ ๊ฐ’์„ ํƒญ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด ์ถœ๋ ฅ
fahr = fahr + step; ํ™”์”จ ์˜จ๋„๋ฅผ 20๋งŒํผ ์ฆ๊ฐ€์‹œํ‚ค๊ณ  ๋ฐ˜๋ณต

๐Ÿ“Š ์‹คํ–‰ ๊ฒฐ๊ณผ ์˜ˆ์‹œ

Fahrenheit Celsius
0 -17
20 -6
40 4
60 15
80 26
100 37
120 48
140 60
160 71
180 82
200 93
220 104
240 115
260 126
280 137
300 148

(์ •์ˆ˜ํ˜• ๋‚˜๋ˆ—์…ˆ์„ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์†Œ์ˆ˜์  ์ดํ•˜๊ฐ€ ๋ฒ„๋ ค์ง‘๋‹ˆ๋‹ค.)


โš ๏ธ ์ฃผ์˜์‚ฌํ•ญ

  1. ์ •์ˆ˜ํ˜• ๋‚˜๋ˆ—์…ˆ
    • 5 * (fahr - 32) / 9 ๊ณ„์‚ฐ์€ ์ •์ˆ˜ ๋‚˜๋ˆ—์…ˆ์ด๋ผ ์†Œ์ˆ˜์  ์ดํ•˜๊ฐ€ ์ž˜๋ฆฝ๋‹ˆ๋‹ค.
    • ์ •ํ™•ํ•œ ๊ฐ’์„ ์–ป์œผ๋ ค๋ฉด ๋ถ€๋™์†Œ์ˆ˜์  ์—ฐ์‚ฐ์„ ์จ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
     
    celsius = 5.0 * (fahr - 32) / 9.0;
  2. ํ•จ์ˆ˜ ์ •์˜ ๋ฐฉ์‹
    • ์ฝ”๋“œ์—๋Š” main()์˜ ๋ฐ˜ํ™˜ํ˜•์ด ์ง€์ •๋˜์ง€ ์•Š์•˜์ง€๋งŒ,
      ํ˜„๋Œ€ C ํ‘œ์ค€์—์„œ๋Š” int main(void) ๋กœ ๋ช…์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.