문자로 주어진 학점을 숫자로 변환시켜 출력해야 한다.
F는 A, B, C, D와 연속되지 않기 때문에 별도로 처리를 해줍니다.
A, B, C, D 학점의 경우 1학점씩 차이가 나기 때문에 아스키 코드 상의 차를 이용하면 편리하게 코드를 짤 수 있습니다. 4.0을 디폴트로 두고, 'A'와의 차를 4.0에서 빼주는 식으로 기본 학점을 구합니다. 그리고 그 다음에 오는 문자가 '+'라면 0.3을 더해주고, '-'라면 0.3을 빼주면 됩니다.
#include <stdio.h>
int main(void)
{
char str[3];
double score = 4.0;
scanf("%s", str);
if (str[0] == 'F')
{
printf("0.0\n");
return 0;
}
score -= str[0] - 'A';
if (str[1] == '+')
score += 0.3;
if (str[1] == '-')
score -= 0.3;
printf("%.1lf", score);
return 0;
}