백준(C언어)/23년 6월

[C] 백준 - 25206번: 너의 평점은

C0MPAS 2023. 6. 2. 14:53

6월 2일(금) - 심화 1 (25206번)

 

25206번: 너의 평점은

인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다! 치

www.acmicpc.net

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

 

최초 생각 정리

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

 

문제점

x

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

 

풀이

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)

#include <stdio.h>
#include <string.h>

typedef struct {
	char name[51];
	double credit;
	char grade[3];
}student;

int main(void)
{
	student information[21] = { 0, };
	double tmp_rating = 0.0;
	double sum_of_credit = 0.0;

	for (int i = 0; i < 20; i++)
	{
		scanf("%s", information[i].name);
		scanf("%lf", &information[i].credit);
		scanf("%s", information[i].grade);

		if (strcmp(information[i].grade, "A+") == 0)
		{
			tmp_rating = tmp_rating + information[i].credit * (4.5);
			sum_of_credit = sum_of_credit + information[i].credit;
		}
		else if (strcmp(information[i].grade, "A0") == 0)
		{
			tmp_rating = tmp_rating + information[i].credit * (4.0);
			sum_of_credit = sum_of_credit + information[i].credit;
		}
		else if (strcmp(information[i].grade, "B+") == 0)
		{
			tmp_rating = tmp_rating + information[i].credit * (3.5);
			sum_of_credit = sum_of_credit + information[i].credit;
		}
		else if (strcmp(information[i].grade, "B0") == 0)
		{
			tmp_rating = tmp_rating + information[i].credit * (3.0);
			sum_of_credit = sum_of_credit + information[i].credit;
		}
		else if (strcmp(information[i].grade, "C+") == 0)
		{
			tmp_rating = tmp_rating + information[i].credit * (2.5);
			sum_of_credit = sum_of_credit + information[i].credit;
		}
		else if (strcmp(information[i].grade, "C0") == 0)
		{
			tmp_rating = tmp_rating + information[i].credit * (2.0);
			sum_of_credit = sum_of_credit + information[i].credit;
		}
		else if (strcmp(information[i].grade, "D+") == 0)
		{
			tmp_rating = tmp_rating + information[i].credit * (1.5);
			sum_of_credit = sum_of_credit + information[i].credit;
		}
		else if (strcmp(information[i].grade, "D0") == 0)
		{
			tmp_rating = tmp_rating + information[i].credit * (1.0);
			sum_of_credit = sum_of_credit + information[i].credit;
		}
		else if (strcmp(information[i].grade, "F") == 0)
		{
			tmp_rating = tmp_rating + information[i].credit * (0);
			sum_of_credit = sum_of_credit + information[i].credit;
		}
		else
		{
			continue;
		}
	}

	printf("%lf", tmp_rating / sum_of_credit);
	return 0;
}

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ