1. 함수의 선언 방식은

 

반환할자료형 함수명(입력1의자료형 입력1를받을변수명, 입력2를받을자료형 입력2를받을변수명...)

{

처리할 내용

return 반환할변수명

}

 

이다. 이를 암기하시오. 또한 아래 문제를 해결하시오.(1시간 소요)

 

가. 반환할 자료형이 int 이고 입력은 int a, int b이며 처리할 내용은 int result = a+b 와 같이 두 수를 더해주는 프로그램을 짜고 return에 result를 주어 결과값이 반환되도록 만드시오. 함수명은 임의로 지으시오.

 

나. int main() 내에서 int x=10, y=20 를 주고, 아까 만든 함수의 이름을 쓰고 입력을 넣은 뒤 출력을 z1로 받아 printf 해보시오. 아래의 슈도코드를 참조하시오.

 

int main()

{

int x=10, y=20;

출력받을 변수 = 함수이름(입력1, 입력2);

printf()

}

 

 

다. 두 수를 곱하는 함수를 만들고 int main 내에서 호출하여 입력을 넣은 뒤 출력을 z2로 받아 printf 해보시오.

라. 두 수의 차이를 구하는 함수를 만드시오. 둘 중 더 큰수에서 더 작은 수를 빼도록 하시오. 출력을 z3으로 받아 printf 해보시오. (힌트 : 삼항연산자를 이용하면 간단히 해결됨)

 

마. 만든 함수들을 main 함수 뒤로 자리를 바꾸어 주고, main함수 앞에는 아까 만든 함수의 반환할자료형 함수명(입력1, 입력2...); 를 써서 함수의 형태만 먼저 정의하고 내용은 뒤에 있도록 해보시오. https://enter.tistory.com/59​ 를 참조하시오.

 

 

2. 다음 함수를 구현하시오.(3시간 소요)

가. 반복할 횟수 int n 을 받아 n!를 출력하는 함수를 만드시오. 입력받은 n으로부터 n=1일때까지 계속 곱하면 됨. (주의 : 재귀함수를 이용하지 마시오!) n 양수일때만 계산하고 그렇지 않은 경우 1을 출력하도록 하시오.

 

나. '가'를 재활용하여 퍼뮤테이션 함수를 만드시오. nPr 에서 n,r를 입력받아 결과값을 출력하도록 하시오. n이 양수 r은 0이상이며 n>=r 인지 검사하여, 유효할때만 계산하고 그렇지 않은 경우 1을 출력하도록 하시오.

 

다. '가~나'를 재활용하여 콤비네이션 함수를 만드시오. nCr에서 n,r를 입력받아 결과값을 출력하도록 하시오. n이 양수 r은 0이상이며 n>=r 인지 검사하여, 유효할때만 계산하고 그렇지 않은 경우 1을 출력하도록 하시오.

 

라. nCr 에서

n=1 r=0, n=1 r=1

n=2 r=0, n=2 r=1, n=2 r=2

n=3 r=0, n=3 r=1, n=3 r=2, n=3 r=3

n=4 r=0, n=4 r=1, n=4 r=2, n=4 r=3, n=4 r=4 ...

...

 

일때의 값을 출력하는 함수를 for를 두번 이용하여 만들어 보시오. n=10일때까지 계산하여 스크린샷을 첨부하시오.

'C언어' 카테고리의 다른 글

C언어 기초 13주차  (0) 2020.12.27
C언어 기초 12주차  (0) 2020.12.21
C언어 기초 8주차  (0) 2020.11.22
c언어 기초 7주차  (0) 2020.11.15
c언어 기초 6주차  (0) 2020.11.08
by 맑은소금 2020. 11. 29. 23:46

1. switch 함수의 사용 방법은

 

 switch( 조건분기할 변수 )

  case 변수의값 : 실행내용 break;

  case 변수의값2 : 실행내용 break;

  case 변수의값3 : 실행내용 break;

 default : 실행내용

 

과 같다. 이를 암기하시오. 또한 아래 문제를 해결하시오.(2시간 소요)

 

가. 이차방정식 ax2+bx+c = 0 에 대해 a,b,c를 선언하고, 각각 입력받으시오.

     단, 입력받은 a=0이면 0이 아닌 수를 입력할 때 까지 반복하여 입력을 받도록 하시오.(do while이용)

나. math.h를 include하시오

다. 변수 det를 선언하고, 이차방정식의 판별식을 계산하여 넣으시오.

라. 변수 SolNum를 선언하고, if~elseif~else로 해의 갯수를 넣으시오. '나'를 활용하시오.

마. switch 함수를 만들고 조건분기할 변수를 SolNum으로 하시오.

바. case에서 SolNum=2 이면 두 근을 표시하시오.

사. case에서 SolNum=1 이면 중근을 표시하시오.

아. case에서 SolNum=0 이면 '해가없다'를 표시하시오.

 

 

2. 숫자를 읽어주는 프로그램을 만드시오.(2시간 소요)

  가. 1~99까지 반복문을 for로 만드시오.

  나. 1~99까지의 수의 십의자리를 읽어주는 프로그램을 switch case로 만드시오.

    x번째 수에 대해, x를 10으로 나눈 몫 n이 십의 자리이다.

    n=1이면 '십', n=2이면 '이십', n=3이면 '삼십'....과 같이 십의 자리를 읽어주도록 만드시오.

  다. 1~99까지의 수의 일의자리 m를 읽어주는 프로그램을 switch case로 만드시오. 나머지 연산자를 이용하시오.

    m=1이면 '일' m=2이면 '이', m=3이면 '삼'.... 과 같이 일의 자리를 읽어주도록 만드시오.

  라. 나~다에서 switch case가 아닌 if ~elseif~ else~를 이용하여 똑같은 기능을 하도록 만드시오.

  마. switch case와 if elseif else의 특징에 대해 조사하고 어떤 때에 어떤 분기를 쓰면 유리한지 50자 이내로 정리해 보시오.

  switch case는 변수 값이 정해져 있을때 사용하는게 좋다. 조건을 보다 간결하게 표현할수 있는 장점이 있다.

  if elseif else는 변수가 정해진 범위(남자, 여자) 사용하는 것이 유리하다.

 

3. 환전 프로그램을 만드시오 (2시간 소요)

  가. 환전하고자 하는 한국 돈을 int input으로 입력받으시오.

  나. define을 통해 USA,JAPAN,EUROPE를 1,2,3 으로 정의하시오. 어느나라 돈으로 바꿀지를 정의할 때 사용할 것임(switch case의 입력임) 

  다. define을 통해 USD,JPY,EUR을 정의하시오. 현재 환율을 이용하시오. 단, 엔화환율은 100으로 나누어야 계산이 정상동작함

  라. 어느나라 통화로 바꿀것인지 입력받으시오.(1.USA 2.JAPAN 3.EUROPE) switch ~ case문을 통해 바꿀통화의 번호를 nation이라는 변수로 받아 USA,JAPAN,EUROPE와 비교하여 넣으시오.

 

 scanf( "%d", &nation );

 

 switch( nation )

  case USA : 실행내용 break;

  case JAPAN : 실행내용 break;

  case EUROPE : 실행내용 break;

 default : 실행내용

 

 

  마. case문 안에서 원화량을 환율로 나누어 외환으로 얼마인지 구하시오.

  바. 1달러 미만, 1000엔 미만, 1유로 미만은 절사하고 한국돈 잔돈으로 받을수 있도록 계산하시오.

  사. 최종적으로 한국돈입력, 어느나라통화로 바꿀지 입력하면 상대 통화로 얼마를 받을수 있고 잔돈은 얼마인지 출력되는 프로그램을 만드시오.

  아. define을 통해 USA,JAPAN,EUROPE,USD,JPY,EUR등을 정의하면 무엇이 좋은지 50자 이내로 쓰시오.

    define으로 정의해ㅅ 놓으면 코드 가독성도 좋고 프로그램을 읽기 쉽게 만들 수 있다.

    그리고 상수를 바꿔야 할 일이 생기면  지시어만 바꾸어 주면 되기 때문에 유지보수성에서도 좋다.

'C언어' 카테고리의 다른 글

C언어 기초 12주차  (0) 2020.12.21
C언어 기초 9주차  (0) 2020.11.29
c언어 기초 7주차  (0) 2020.11.15
c언어 기초 6주차  (0) 2020.11.08
c언어 기초 5주차  (0) 2020.11.01
by 맑은소금 2020. 11. 22. 23:07
| 1 |