C Programming/윤성우의 열혈 C 프로그래밍

[열혈 c 코딩] Chapter 7 반복문 문제&풀이

All리얼 개발자 2025. 3. 22. 11:12

문제 07-1

문제 1.

프로그램 사용자로부터 양의 정수를 하나 입력받아서, 그 수만큼 “Hello World”를 출력하는 프로그램을 작성해 보자.

더보기

 

(문제 난이도를 고려하여 풀이 생략)

 

 

문제 2.

프로그램 사용자로부터 양의 정수를 하나 입력받은 다음, 그 수만큼 3의 배수를 출력하는 프로그램을 작성해 보자. 예를 들어서 5를 입력받았다면, 3 6 9 12 15를 출력해야 한다.

더보기

 

 

 

 

문제 3.

프로그램 사용자로부터 계속해서 정수를 입력받는다. 그리고 그 값을 계속해서 더해 나간다. 이러한 작업은 프로그램 사용자가 0을 입력할 때까지 계속되어야 하며, 0이 입력되면 입력된 모든 정수의 합을 출력하고 프로그램을 종료시킨다.

 

 

문제 4.

프로그램 사용자로부터 입력받은 숫자에 해당하는 구구단을 출력하되, 역순으로 출력하는 프로그램을 작성해 보자.

 

 

문제 5.

프로그램 사용자로부터 입력받은 정수의 평균을 출력하는 프로그램을 작성하되 다음 두 가지 조건을 만족시켜야 한다.
[조건 1]
“먼저 몇 개의 정수를 입력할 것인지 프로그램 사용자에게 묻는다. 그리고 그 수만큼 정수를 입력받는다.”
[조건 2]
“평균값은 소수점 이하까지 계산해서 출력한다.”

더보기

 

추가 설명:

printf 출력 시, %f, %lf 상관없음. printf()는 가변 인자 함수이므로  float이 자동으로 double로 승격

다만 scanf에서 double 사용 시, %f 사용 불가 -> %lf 사용필요.

 

 

문제 07-2

문제 1.

프로그램 사용자로부터 총 5개의 정수를 입력받아서, 그 수의 합을 출력하는 프로그램을 작성해 보자. 단! 한가지 조건이 있다. 정수는 반드시 1이상이어야 한다. 만약 1미만의 수가 입력되는 경우에는, 이를 입력으로 인정하지 않고 재 입력을 요구해야 한다. 그래서 결국 1이상의 정수 5개를 모두 입력 받을 수 있도록 프로그램을 완성해야 한다.

 

 

문제 2.

아래의 출력을 보이는 프로그램을 작성해보자
*
O  *
O  O  *
O  O  O  *
O  O  O  O  *

참고로, 총 5행에 걸쳐서 출력이 이뤄지고, 행이 더해질 때마다 0 문자의 수가 증가한다는 특징을 기반으로 while문의 중첩을 구성하면 된다.

 

 

문제 07-3

문제 1.

UsefulDoWhile.c

 

<방법 1> 변수 num의 값을 적절히 초기화해서 첫 번째 반복조건의 검사결과가 참이 되게 한다.

 

<방법 2> while문에 진입하기 전에 프로그램 사용자로부터 값을 1회 입력받게 한다.

 

위 두 가지 방법을 각각 적용해서 위 예제 UsefulDoWhile.c를 while문 기반으로 재 구현해 보자(참고로 어떠한 방법이든 do~while문을 적용했을 때보다는 부자연스럽다는 느낌이 들 것이다).

더보기
<방법 1>

 

<방법 2>

 

 

 

문제 2.

0 이상 100 이하의 정수 중에서 짝수의 합을 출력하는 프로그램을 구현하되, do~while문 기반으로 구현해 보자. 참고로 덧셈의 결과는 2550이 되어야 한다.

 

 

문제 3.

while문의 중첩 예제인 구구단 2단부터 9단까지의 출력을 do~while문의 중첩기반으로 재 구현해보자. while문의 중첩을 이해하고 있으면 충분히 응용이 가능하다.

 

 

문제 07-4

문제 1.

프로그램 사용자로부터 두 개의 정수를 입력받아서, 두 정수를 포함하여 그 사이에 존재하는 정수들의 합을 계산해서 출력하는 프로그램을 작성해 보자. 예를 들어서 3과 5가 입력되면, 3+4+5의 결과가 출력되어야 한다. 그리고 문제를 조금 간단히 하기 위해서, 첫 번째 입력되는 정수보다 두 번째 입력되는 정수가 더 커야 한다는 조건을 걸기로 하겠다.

 

 

문제 2.

다음 수식인 계승(factorial)을 계산하는 프로그램을 작성해 보자. 
n! = 1 X 2 X 3 X… X n
프로그램 사용자로부터 n에 해당하는 정수를 입력받는다. 그러면 n의 계승 n! 를 계산해서 출력이 이뤄져야 한다.