chapter7. 문제풀이

마블현·2024년 3월 20일

C언어

목록 보기
9/17

문제 07-1 [while문의 활용]

  1. 프로그램 사용자로부터 양의 정수를 하나 입력 받아서, 그 수만큼 "Hello world!"를 출력하는 프로그램 작성

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

    내가 작성한 코드는 원하는 출력의 역순으로 나온다.
#include <stdio.h>

int main()
{
	int num=0, cnt=0;
    printf("배수의 갯수: ");
    scanf("%d", &num);
    
    while(cnt<num)
    {
    	cnt++;
        printf("%d ", 3*cnt);
    }
    return 0;
}

순차적으로 출력하려면 변수를 하나 더 설정하여 증가하는 형태로 만들면 된다.
0을 곱하면 0이 나와버리니 비교연산 후에 cnt값을 증가시키고 곱 연산을 진행해야한다.


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

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

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


    while문에서 cnt 변수의 값을 전부 감소시키고 나면 0이 되어 평균을 구할 수 없는 문제가 발생해서, cnt값을 저장시킬 수 있는 변수를 하나 더 선언(cnt2)하여 문제를 해결했다.
#include <stdio.h>

int main(void)
{
	int total=0, i=0;
    int num, input;
    
    printf("정수 몇 개를 입력하실건가요? ");
    scanf("%d", &num);
    
    while(i<num)
    {
    	i++;
        printf("정수 입력: ");
        scanf("%d", &input);
        total += input;
    }
    printf("평균: %f \n", (double)total/num);
    return 0;
}

i라는 변수를 선언하여, i의 값을 증가시키는게 오히려 간결한 코드가 된다.
반복문에서는 감소연산을 지양하는 건가 싶기도 하고...
형변환을 시켜줌으로써 double형으로 선언하지 않아도 되는 방법도 있다.


문제 07-2 [while문의 중첩]

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

    문제에서 1미만의 수라 했으니 num==0이 아닌 num<=0으로 했어야한다.

  1. 아래의 출력을 보이는 프로그램 작성
    a
    b a
    b b a
    b b b a
    b b b b a
    참고로 총 5행에 걸쳐서 출력이 이루어지고, 행이 더해질 때마다 b문자의 수가 증가한다는 특징을 기반으로 while문의 중첩을 구성

문제 07-4 [for문의 활용]

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

  1. 다음 수식인 계승을 계산하는 프로그램을 작성
    n! = 1×2×3×4×...×n
    프로그램 사용자로부터 n에 해당하는 정수를 입력
profile
고수로 나아가는 중

0개의 댓글