C언어/백준

25206번

twoweeks-within 2024. 11. 13. 18:33

조건 : 전공평점은 전공과목별 (학점 × 과목평점)의 합을 학점의 총합으로 나눈 값이다

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