<C프로그래밍-새내기를 위한 첫 C 언어 책>연습문제 chapter 4 (6~10)

6. 킬로그램(kg)단위의 무게를 입력받아 파운드(lb)단위로 출력하는 프로그램을 작성하시오. (소수 1자리)

#include <stdio.h>
int main(void)
{
    double kilo, pound;

    printf("kg단위의 무게를 입력하세요:");
    scanf_s("%lf", &kilo);

    pound = kilo / 0.45359237;

    printf("입력하신 무게 %.1lfkg은 %.1lflb에 해당합니다.\n", kilo, pound);

    return 0;
}

 

실행결과:

etc-image-0

 

 

7. 원기둥의 밑면의 반지름과 높이를 입력받아 부피를 계산한느 프로그램을 작성하시오.(소수 1자리)

#include <stdio.h>
int main(void)
{
    double radius, height, volume, pi;    // 반지름, 넓이, 부피, 원주율

    printf("원기둥의 밑면의 반지름, 높이를 입력하세요(cm단위):");
    scanf_s("%lf%lf", &radius, &height);

    pi = 3.141592;
    volume = pi*radius*radius*height;

    printf(">>계산한 원기둥의 부피는 %.1lf㎤입니다.\n", volume);

    return 0;
}
힌트에 원주율이 π로만 되어 있어 소수점 6자리에서 잘라 3.141592로 정했다. %.1lf로 출력하면 책과 같은 결과값이 나온다.

실행결과:

etc-image-1

 

 

8. 키보드로 월을 입력 받아 입력 받은 월이 상반기인지 하반기인지 판단하여 출력하는 프로그램을 작성하시오.

#include <stdio.h>
int main(void)
{
    int month;
    printf("월(1~12) 입력:");
    scanf_s("%d", &month);

    month <= 6 ? printf(">>%d월은 상반기입니다.\n", month) : printf(">>%d월은 하반기입니다.\n", month);

    return 0;
}
if문이 더 익숙해서 조금 생각이 필요했던 문제.
논리연산자와 조건 연산자를 이용하라는 힌트가 있는데 논리연산자를 사용할 필요가 없었다. 입력받은 숫자가 6 이하면 상반기라 출력하고 아니면 하반기라 출력하면 조건연산자 하나로 해결할 수 있다.

 

 

실행결과:

etc-image-2

    

etc-image-3

 

 

9. 기가바이트 수치를 입력받아 입력한 값이 몇 메가바이트인지, 몇 킬로바이트인지 계산하는 프로그램을 작성하시오.

#include <stdio.h>
int main(void)
{
    int GB, MGB, KGB;
    printf("입력(Gigabyte):");
    scanf_s("%d", &GB);

    MGB = 1024 * GB;
    KGB = 1024 * MGB;

    printf(">>%dGigabyte = %dMegabyte = %dkilobyte\n", GB, MGB, KGB);

    return 0;
}​

실행결과:

etc-image-4

 

10. 초 단위의 시간을 입력 받아 몇 시간, 몇 분, 몇 초인지를 계산하는 프로그램을 작성하시오.

#include <stdio.h>
int main(void)
{
    int sec_all, hour, min, sec;    
    //입력받을 초 , 변환할 시/분/초

    printf("초(sec) 입력:");
    scanf_s("%d", &sec_all);

    hour = sec_all / 3600;
    min = (sec_all % 3600) / 60;
    sec = (sec_all % 3600) % 60;

    printf("입력한 %d초는 %d시간 %d분 %d초입니다.\n", sec_all, hour, min, sec);

    return 0;
}

실행결과:

etc-image-5