국어 영어 수학 컴퓨터 과목의 점수를 정수로 입력받아서 총점과 평균을 구하는 프로그램을 작성하시오. (단 평균의 소수점 이하는 버림 한다.)
![]() 70 95 63 100 |
![]() sum 328 avg 82 |
[코드]
#include <stdio.h>
int main() {
int ko, en, ma, co;
scanf("%d %d %d %d", &ko, &en, &ma, &co);
printf("sum %d \n", ko + en + ma + co);
printf("avg %d \n", (ko + en + ma + co) / 4);
printf("avg %d \n", (ko + en + ma + co) / 4);
return 0;
}
}
평균의 소수점 이하를 버리기 위해 %.f를 써도 되지만 정수들의 연산의 결과는 정수로 나타나기 때문에 sum/4를 하였을 때 몫만 나타나 소수점 이하의 수가 나타나지 않는다.
연산의 결과를 실수로 표현하기 위해서는 sum/4.0 처럼 한 수를 실수로 바꿔서 정수와 실수의 연산으로 만드는 암묵적 형변환을 해주는 방법과 (float)sum/4 처럼 명시적으로 형변환을 시키는 방법이 있다.
명시적 형변환
사용자가 직졉 형태를 변환하는 것으로 원본의 형태가 변화하는 것이 아니라 사용자가 직접 변경하는 부분에서만 변경된다.(경고문구가 발생하지 않는다)
(변경할 자료형)변수 형태로 사용한다.
암묵적 형변환
사용자가 따로 표시하지 않더라도 컴파일러가 자동으로 수행하는 형변환을 의미한다. (대입하는 형태에 따라 값 손실에 대한 경고문구가 발생할 수 있다.)
1) 대입을 통한 암묵적 변환
대입을 받는 변수쪽으로의 형변환이 일어난다.
2) 연산을 통해 일어나는 암묵적 변환
연산의 결과값은 피연산자 중에서 가장 큰 자료형을 따라간다.(실수*정수=실수)
'코딩 > Language Coder' 카테고리의 다른 글
113 : 연산자 - 형성평가3 (0) | 2018.04.18 |
---|---|
112 : 연산자 - 형성평가2 (0) | 2018.04.18 |
525 : 연산자 - 자가진단8 (0) | 2018.04.17 |
524 : 연산자 - 자가진단7 (0) | 2018.04.17 |
523 : 연산자 - 자가진단6 (0) | 2018.04.17 |