목차
1. 현재 가지고 있는 외국화를 한화로 환전하기
<결과>
<코드>
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int my_pound;
int won;
const int POUND = 1560;
printf("당신이 가지고 있는 파운드화는 얼마입니까? \n");
scanf("%d", &my_pound);
won = my_pound * POUND;
printf("파운드를 한화로 바꾸면 약 %d입니다 \n", won);
return 0;
}
2. 매달 저축할 예금액, 햇수를 입력받아 몇 년 후 총 자산 예측하기
<결과>
<코드>
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int deposit;
int year;
int fortune;
const int MONTH = 12;
printf("당신은 매달 얼마를 저축하시겠습니까? \n");
scanf("%d", &deposit);
printf("몇 년간 납입하시겠습니까? \n");
scanf("%d", &year);
fortune = deposit * year * MONTH;
printf("%d년 뒤, 당신의 자산은 %d입니다. \n", year, fortune);
return 0;
}
3. 오버플로우 문제 해결
위의 콘솔창에서 매달 저축액을 1,000,000,000으로 30년 납입으로 계산한다면 fortune값이 -가 되는 등 틀린 값이 나온다. int형 변수가 나타낼 수 있는 정수의 범위를 넘어갔기 때문에 발생하는 현상이고, 이를 오버플로우라고 한다. 해당 오류를 해결하기 위한 코드를 작성해보자.
<해결 방법>
자료형을 long long으로 형식 지정자로 %lld를 사용한다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
long long deposit;
long long year;
long long fortune;
const long long MONTH = 12;
printf("당신은 매달 얼마를 저축하시겠습니까? \n");
scanf("%lld", &deposit);
printf("몇 년간 납입하시겠습니까? \n");
scanf("%lld", &year);
fortune = deposit * year * MONTH;
printf("%lld년 뒤, 당신의 자산은 %lld입니다. \n", year, fortune);
return 0;
}
4. a, b 두 정수의 값의 위치 바꾸기
<결과>
<코드>
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int a,b,c;
a = 100;
b = 200;
printf("%d, %d \n", a, b);
c = a;
a = b;
b = c;
printf("%d, %d \n", a, b);
return 0;
}
5. 2진수 16진수로 바꾸기A
다음은 8비트이다. 한 비트는 1인 경우에만 켜지고, 0인 경우에는 꺼진다. 이를 16진수로 만들어보자.
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
<해결 방법>
2진수와 16진수는 깊은 연관이 있다.
우선 8비트를 4비트 4비트씩 나눈다.
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
(4비트는 2의 4승이므로 16이다. )
1000 0000으로 나뉜다.
1의 값은 2의 3승이므로 8의 값을 갖는다.
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1000 | 0000 | ||||||
8 | 0 |
<결과>
0x80(16진수)
6. 2진수 16진수로 바꾸기B
1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 |
1100 | 0100 | ||||||
8+4=12 C |
4 |
<결과>
0xC4(16진수)
'C언어 > 참고서: C언어 콘서트' 카테고리의 다른 글
C언어 9차시 부동 소수형 연습문제 (0) | 2023.03.21 |
---|---|
C언어 8차시 부동소수점형, %e, 유효 숫자, 지수표기법, underflow (0) | 2023.03.21 |
C언어 6차시 변수와 자료형, 정수형, initialization, constant, 8진법, 16진법, 기호상수, const, overflow (0) | 2023.03.21 |
C언어 5차시 연습 문제 풀기 2 (0) | 2023.03.20 |
C언어 4차시 연습 문제 풀기 1 (0) | 2023.03.20 |