반응형
섭씨로 표시된 온도 측정값을 화씨 표시의 온도 값으로 변환하는 프로그램을 작성해보자.
단, 출력은 소수점 둘째자리 까지만 함
화씨 = 섭씨 * (9/5) + 32
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main(void) {
double c;
printf("%s", "섭씨 온도 입력: ");
scanf("%lf", &c);
double f;
f = c * (9 / 5) + 32;
printf("화씨온도 %.2f\n", f);
return 0;
}
▶ 제대로 출력되는 것처럼 보이지만 계산 값이 틀림(논리 오류 발생)
→ 섭씨 온도가 1이라고 할 때, 화씨 온도는 1*(9/5)+32 = 33.8이지만 소수점 뒷자리가 0으로 출력됨
→ c언어는 정수 계산을 우선시하기 때문에 나타나는 오류
→ 정수 / 정수가 아닌 정수 / 실수로 바꾸면 오류 해결
★ 오류 해결 ★
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main(void) {
double c;
printf("%s", "섭씨 온도 입력: ");
scanf("%lf", &c);
double f;
f = c * (9.0 / 5) + 32;
printf("화씨온도 %.2f\n", f);
return 0;
}
반응형
'Language > C' 카테고리의 다른 글
[ C ] [ 변수 연습 문제 ] 성별 출력 프로그램 (0) | 2021.09.16 |
---|---|
[ C ] [ 변수 연습 문제 ] 아스키코드값 출력하기 (0) | 2021.09.16 |
[ C ] [ 상수 연습 문제 ] 다항식 계산 프로그램 (0) | 2021.09.13 |
[ C ] 상수(Constant) (0) | 2021.09.13 |
[ C ] [ scanf() 연습 문제 ] 입력 받은 숫자 연산 프로그램 (0) | 2021.09.13 |