조건 : 전공평점은 전공과목별 (학점 × 과목평점)의 합을 학점의 총합으로 나눈 값이다
a. 아는값 : 학점, 모르는값 : 과목평점
b. 과목평점은 등급으로 구할 수 있음 > strcmp
1. 과목 학점 등급 > for문으로 각각 받음
2. strcmp(같으면 0 , 사전식 앞뒤 +,-) : 등급이 a+, a,, 이면 평점4.5, 4.0 리턴
// 함수선언 double
3. 토탈 점수 += 학점 * 평점
4. 토탈 학점 > 나눔
// return 0.0; P or F 과목
#include <stdio.h>
#include <string.h>
double get_grade_point(char grade[]) {
if (strcmp(grade, "A+") == 0) return 4.5;
if (strcmp(grade, "A0") == 0) return 4.0;
if (strcmp(grade, "B+") == 0) return 3.5;
if (strcmp(grade, "B0") == 0) return 3.0;
if (strcmp(grade, "C+") == 0) return 2.5;
if (strcmp(grade, "C0") == 0) return 2.0;
if (strcmp(grade, "D+") == 0) return 1.5;
if (strcmp(grade, "D0") == 0) return 1.0;
return 0.0; // "F" 또는 "P"일 경우
}
int main() {
int i;
double total_points = 0.0, total_credits = 0.0;
char subject[51], grade[3];
double credit;
for (i = 0; i < 20; i++) {
// 과목명, 학점, 등급 입력 받기
scanf("%s %lf %s", subject, &credit, grade);
// "P"는 계산에서 제외
if (strcmp(grade, "P") != 0) {
total_points += credit * get_grade_point(grade);
total_credits += credit; // 학점 총합
}
}
double major_gpa = total_points / total_credits;
printf("%.4f\n", major_gpa);
return 0;
}
'C언어 > 백준' 카테고리의 다른 글
1193번 (0) | 2024.11.16 |
---|---|
2738번, 2566번, 2563번, 2745번 (0) | 2024.11.14 |
2941번 , 1316번 (0) | 2024.11.13 |
10988번, 1157번 (0) | 2024.11.13 |
11718번 (0) | 2024.11.10 |