

생각
1. getline으로 20개를 입력받을 거다(sstream으로 각 변수에 하나씩 저장
2. 과목 평점이 P가 아닐 때, 총학점에 학점을 더해줌
3. 입력받으면서 학점*전공평점 결과를 전체 grade변수에 더해준다
4. grade를 hakjeom으로 나누어평균을 계산한다.
string으로 입력받은 상태에서, 학점을 어떻게 체크하느냐
1. 마지막 원소가 P또는 F가 아니면
2. 학점 부과
그냥 sstream 라이브러리를 사용해 ss변수에 str을 넣고, 세 개의 변수에 각각 값을 할당했다.
소수점 자리수 표시는 cout.precision을 사용했다.
#include <iostream>
#include <algorithm>
#include <string>
#include <sstream>
using namespace std;
int main(){
string str;
float grade = 0.0;
float hakjeom = 0.0;
for(int i=0; i<20; i++){
string x, z;
float y;
getline(cin, str);
stringstream ss(str);
ss>>x>>y>>z;
if(z!="P"){
hakjeom += y;
if(z=="A+"){grade += y*4.5;}
else if(z=="A0"){grade += y*4.0;}
else if(z=="B+"){grade += y*3.5;}
else if(z=="B0"){grade += y*3.0;}
else if(z=="C+"){grade += y*2.5;}
else if(z=="C0"){grade += y*2.0;}
else if(z=="D+"){grade += y*1.5;}
else if(z=="D0"){grade += y*1.0;}
else grade += 0.0;
}
}
float avg = grade / hakjeom;
cout.precision(6);
cout << fixed;
cout << avg ;
cout.unsetf(ios::fixed);
return 0;
}