치훈이의 전공평점을 계산해주는 프로그램을 작성해보자.
전공평점은 전공과목별 (학점 × 과목평점)의 합을 학점의 총합으로 나눈 값이다.
1 ≤ 과목명의 길이 ≤ 50
과목명은 알파벳 대소문자 또는 숫자로만 이루어져 있으며, 띄어쓰기 없이 주어진다. 입력으로 주어지는 모든 과목명은 서로 다르다.
학점은 1.0,2.0,3.0,4.0중 하나이다.
등급은 A+,A0,B+,B0,C+,C0,D+,D0,F,P중 하나이다.
적어도 한 과목은 등급이 P가 아님이 보장된다.
경우의 수 최대한 적게 나누는게 중요
예외 : P인경우 중요!
#include <stdio.h>
int main() {
char name[51];
char grade[3];
//소수점 출력:double
double credit;
double sumCredit = 0.0; // 총학점
double temp; // ABC점수를 숫자로 바꾼것
double res = 0.0; // 학점*점수
for(int i = 0; i < 20; i++) {
scanf("%s %lf %s", name, &credit, grade);
//P이면 sumcredit에 포함안되고 다시 반복문으로
if(grade[0] == 'P') continue;
sumCredit += credit;
//F이면 sumcredit에 포함되고 반복문으로
if(grade[0] == 'F') continue;
//+고려하지 않고 ABC로만 구분
if(grade[0] == 'A') temp = 4;
else if (grade[0] == 'B') temp = 3;
else if (grade[0] == 'C') temp = 2;
else temp = 1;
//+가 붙어있다면 0.5더해주기
if (grade[1] == '+') temp += 0.5;
//학점*점수 누적해서 res에 더해주기
res += credit * temp;
}
printf("%lf", res / sumCredit);
return 0;
}