728x90
728x170
1번
#include <stdio.h>
int main()
{
//int num;
double num;
printf("실수를 입력하세요 : ");
//scanf("%d", &num);
scanf("%lf", &num);
//printf("당신이 입력한 수는 %d입니다. \n", num);
printf("당신이 입력한 수는 %.2lf입니다. \n", num);
return 0;
}
/*
실수를 입력받고 출력할 수 있도록 수정하는 문제입니다.
4, 8, 11 번째 줄은 int, 즉 정수를 다루기 위한 코드이므로
5, 9, 12 번째 줄과 같이 수정되어야 합니다.
12번째 줄의 서식문자 %lf 사이의 .2는 소수점 둘째자리까지 표시함을 의미합니다.
*/
2번
#include <stdio.h>
int main()
{
//char c=200;
int c=200;
printf("c=%d \n", c);
return 0;
}
/*
자료형의 표현 범위에 관한 문제입니다.
원래 코드인 4번째 줄의 코드는 문자형 변수를 선언하여 200으로 초기화 하였습니다.
하지만 문자형 변수는 200이라는 큰 수를 담을 수 없기 때문에
출력하면 이상한 값이 나오게 됩니다.
따라서 200이라는 수를 담을 수 있을 정도로 충분히 큰 자료형인 정수형을 사용하면
원하는 결과를 출력할 수 있습니다.
*/
3번
#include <stdio.h>
int main()
{
int i;
float f;
double d;
i=(long)('a'+1.3);
f=2.49+i;
d=(double)f*i;
// 데이터 손실 여부를 확인하기 위해 출력해 봅니다.
printf("%d \n", i);
printf("%lf \n", f);
printf("%lf \n", d);
}
/*
'a'는 아스키코드에 따라 정수 97로 다루어지기 때문에 'a'+1.3은 98.3으로 계산됩니다.
하지만 이를 long 형으로 강제 형변환하면서 실수부가 손실되어 i는 98이 됩니다.
정수인 i에 2.49를 더하면 손실을 최소화하는 방향으로 100.49의 double형으로 자동 형변환이 되며
f는 float이기 때문에 더 작은 자료형으로 형변환이되면서 실수부에서 약간의 손실이 발생합니다.
float 형인 f를 double로 강제 형변환 할때에는 손실이 발생하지 않지만 정수형인 i와 곱하면 손실이 일어나게 됩니다.
*/
4번
#include <stdio.h>
int main(void)
{
int c;
printf("input = ");
scanf("%d", &c);
printf("입력한 코드에 해당하는 문자는 %c입니다. \n", c);
return 0;
}
/*
입력은 정수형으로 받고
출력을 문자형으로 하는 문제입니다.
*/
5번
#include <stdio.h>
int main()
{
double result;
double input1;
double input2;
printf("input 2 numbers = ");
scanf("%lf %lf", &input1, &input2);
result = input1/input2;
printf("나눗셈 결과 = %lf \n", result);
return 0;
}
/*
사용자가 입력하는 실수까지 받을 수 있어야 하고
(정수 간의 나눗셈이라 하더라도) 실수형의 결과값도 다룰 수 있어야 하기 때문에
변수들을 double 형으로 선언해야 합니다.
*/
6번
#include <stdio.h>
int main()
{
double r, v, result;
printf("원형 트랙의 반지름(km): ");
scanf("%lf", &r);
printf("자동차의 속도(km/h): ");
scanf("%lf", &v);
result = (2*3.14*r)*60/v;
printf("자동차가 트랙을 한바퀴 완주하는데 걸리는 시간은 %.3lf분 입니다.", result);
return 0;
}
/*
11번째 줄의 (2*3.14*r)는 트랙의 둘레를 계산한 것이고
여기에 곱해주는 60은 시간단위를 분단위로 바꾸기 위한 것입니다.
*/
7번
#include <stdio.h>
int main()
{
double r, area, length;
printf("원의 반지름: ");
scanf("%lf", &r);
area = 3.14*r*r;
length = 2*3.14*r;
printf("원의 면적: %.2lf\n원의 둘레: %.2lf \n", area, length);
return 0;
}
/*
책에서의 힌트대로 9, 10번째 줄을 구현하면 됩니다.
*/
728x90
그리드형
'IT > 프로그래밍' 카테고리의 다른 글
C언어 본색 파트1 Chapter 8 연습문제 솔루션 (0) | 2021.05.31 |
---|---|
C언어 본색 파트1 Chapter 7 연습문제 솔루션 (0) | 2021.05.31 |
C언어 본색 파트1 Chapter 5 연습문제 솔루션 (0) | 2021.05.31 |
C언어 본색 파트1 Chapter 4 연습문제 솔루션 (0) | 2021.05.30 |
C언어 본색 파트1 Chapter 3 연습문제 솔루션 (0) | 2021.05.30 |
댓글