«   2024/12   »
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
Tags
more
Archives
Today
Total
관리 메뉴

ITGenerations

윤성우 열혈 c 프로그래밍 chap9-1 본문

프로그래밍/연습문제

윤성우 열혈 c 프로그래밍 chap9-1

ITGenerations 2017. 5. 25. 01:34

<예제1>

#include <stdio.h>


int MaxNum(int n1, int n2, int n3)

{


if (n1 > n2)

return (n1 > n3) ? n1 : n3;

else

return (n2 > n3) ? n2 : n3;




}


/*

n1>n2일 때 return (n1>n3)해서 n1 하고 n3를 출력하는 이유는

둘 중에 더큰수비교를 중첩해서 결국 3가지 중 가장 큰 수를

출력하기 위해서이다.


*/

int MinNum(int n1, int n2, int n3)

{

if (n1 > n2)

return (n2 > n3) ? n3 : n2;

else

return (n1 > n3) ? n3 : n1;


}


/*

n1>n2일 때 return(n2>n3)?n3:n2;를 하는 이유는

maxnum코드와 반대로 하기 위해서다.

즉, 더 작은수를 구하기 위해서인데. 

이 경우는 헷갈릴수도 있었다.


*/


int main(void)

{

int n1, n2, n3;


printf("3가지 정수를 입력하시오:");

scanf("%d %d %d", &n1, &n2, &n3);


printf("가장 큰 정수:%d\n", MaxNum(n1,n2,n3));

printf("가장 작은 정수:%d\n", MinNum(n1,n2,n3));







return 0;

}







<예제2>

#include <stdio.h>


double CelToFah(double c)

{

return  1.8*c + 32;

}


double FahToCel(double f)

{

return (f - 32) / 1.8;

}


int main(void)

{

int sel;

double num;



printf("1. 섭씨(c)를 화씨(f)로  2.화씨(f)를 섭씨(c)로\n");

printf("선택:");

scanf("%d",&sel);



if (sel == 1)

{

printf("섭씨(c)입력:");

scanf("%lf", &num);

printf("화씨(f): %f\n", CelToFah(num));

}



else if (sel == 2)

{

printf("화씨(f)입력:");

scanf("%lf", &num);

printf("섭씨(c): %f\n", FahToCel(num));


}


else

printf("선택 오류\n");


return 0;

}


<예제3>

#include <stdio.h>

void showfibo(int num)

{

int f1 = 0, f2 = 1, f3, i;

if (num == 1)

printf("%d\n", f1);

else

printf("%d\n%d\n", f1, f2);


for (i = 0; i < num - 2; i++)

{

f3 = f1 + f2;

printf("%d\n", f3);

f1 = f2;

f2 = f3;


}


}



int main(void)

{

int n;


printf("몇 개의 피보나치 수열을 나열?: ");

scanf("%d", &n);

printf("\n\n");



if (n < 1)

{

printf("1이상의 값을 입력하세요.\n");

return -1;

}


showfibo(n);






return 0;

}





















--------------------------------------

피보나치수열 48개 나열 결과

--------------------------------------


몇 개의 피보나치 수열을 나열?: 48



0

1

1

2

3

5

8

13

21

34

55

89

144

233

377

610

987

1597

2584

4181

6765

10946

17711

28657

46368

75025

121393

196418

317811

514229

832040

1346269

2178309

3524578

5702887

9227465

14930352

24157817

39088169

63245986

102334155

165580141

267914296

433494437

701408733

1134903170

1836311903

-1323752223

계속하려면 아무 키나 누르십시오 . . .





48개째부터는 수를 더 이상 나타내지못한다.

그 이유는 int 가 표시할 수 있는 수의 한계가 있기 때문.