반응형
국어, 영어, 수학 점수를 입력받은 후, 총점, 평균, 학점 구하기 (Function)
(총점, 평균, 학점에 대한 각 기능별 함수 구현)
입력형식 | 출력형식 |
국어: 영어: 수학: |
국어: xx, 영어: xx, 수학: xx 총점: xx, 평균: xx.xx, 학점: xx |
#include<stdio.h>
int total(int a, int b, int c); // '총점'을 구하는 함수 선언
double average(int a); // '평균'을 구하는 함수 선언
char level(double a); // '학점'을 구하는 함수 선언
int main(){
int kor = 0, eng = 0, math = 0; // 국어, 영어, 수학 점수를 저장할 변수 선언
int sum = 0; // 총점 변수
double avg = 0.0; // 평균 변수
char grade = 0; // 학점 변수
do{
printf("국어 : ");
scanf("%d", &kor);
} while(kor < 0 || kor > 100); // 입력받은 국어 점수(kor)의 범위가 0 ~ 100에 해당이 안되면 do로 돌아가 점수를 다시 입력받는다.
do{
printf("영어 : ");
scanf("%d", &eng);
} while(eng < 0 || eng > 100);
do{
printf("수학 : ");
scanf("%d", &math);
} while(math < 0 || math > 100);
sum = total(kor, eng, math); // 함수를 호출 한 후, 반환값을 변수 sum에 저장한다.
avg = average(sum);
grade = level(avg);
printf("국어 : %d, 영어 : %d, 수학 : %d\n", kor, eng, math);
printf("총점 : %d, 평균 : %.2lf, 학점 : %c\n", sum, avg, grade);
return 0;
}
int total(int a, int b, int c){
return a + b + c;
}
double average(int a){
return a / 3.;
}
char level(double a){
switch((int)a / 10){ // switch(값)의 '값'은 정수형만 취급할 수 있기 때문에, double형인 a를 int형으로 casing 해준다.
case 10: case 9: return 'A';
case 8: return 'B';
case 7: return 'C';
case 6: return 'D';
default: return 'F';
}
}
반응형
'C' 카테고리의 다른 글
[C언어] 실습: 다섯 개의 정수를 입력받은 후, 최댓값 출력하기 (0) | 2021.02.07 |
---|---|
[C언어] 배열(Array) 및 자료 구조(Data Structure) (0) | 2021.02.04 |
[C언어] 실습: 함수를 이용한 덧셈, 뺄셈, 곱셈, 나눗셈 계산하기 - 2 (0) | 2021.02.02 |
[C언어] 실습: 함수를 이용한 덧셈, 뺄셈, 곱셈, 나눗셈 계산하기 - 1 (0) | 2021.02.01 |
[C언어] void function(int *x, int *y) (0) | 2021.01.31 |