백준 25206 c++

magicdrill·2024년 4월 17일
0

백준 문제풀이

목록 보기
319/654

백준 25206 c++

#include <iostream>
#include <cstring>
#include <cstdlib>
#pragma warning(disable:4996)

using namespace std;

int main(void)
{
	int i = 0;
	char temp[51];//
	double total = 0, total2 = 0, avg = 0;
	//char** lecture_name = nullptr;
	//lecture_name = new char* [20];
	double score[20] = {};
	//char grade[20][3] = {};
	double grade2[20] = {};

	for (i = 0; i < 20; i++)
	{
		cin >> temp;
		if ((int)strlen(temp) >= 1 && (int)strlen(temp) <= 50)
		{
			//lecture_name[i] = new char[(int)strlen(temp) + 1];
			//strcpy_s(lecture_name[i], (int)strlen(temp) + 1, temp);
			//strcpy(lecture_name[i], temp);
			cin >> score[i];
			cin >> temp;
			//strcpy_s(grade[i], (int)strlen(temp) + 1, temp);
			//strcpy(grade[i], temp);
			if (strcmp(temp, "A+") == 0)
			{
				grade2[i] = 4.5;
			}
			else if (strcmp(temp, "A0") == 0)
			{
				grade2[i] = 4.0;
			}
			else if (strcmp(temp, "B+") == 0)
			{
				grade2[i] = 3.5;
			}
			else if (strcmp(temp, "B0") == 0)
			{
				grade2[i] = 3.0;
			}
			else if (strcmp(temp, "C+") == 0)
			{
				grade2[i] = 2.5;
			}
			else if (strcmp(temp, "C0") == 0)
			{
				grade2[i] = 2.0;
			}
			else if (strcmp(temp, "D+") == 0)
			{
				grade2[i] = 1.5;
			}
			else if (strcmp(temp, "D0") == 0)
			{
				grade2[i] = 1.0;
			}
			else if(strcmp(temp, "P") == 0)
			{
				grade2[i] = -1.0;
			}
			else 
			{
				grade2[i] = 0.0;
			}
		}
		else
		{
			i--;
		}
	}

	for (i = 0; i < 20; i++)
	{
		if (grade2[i] == -1.0)
		{
			;
		}
		else
		{
			total = total + (grade2[i] * score[i]);
			total2 = total2 + score[i];
		}
	}
	avg = total / total2;

	/*for (i = 0; i < 20; i++)
	{
		cout << lecture_name[i] << " " << score[i] << " " << grade[i] << endl;
	}*/

	cout << fixed;
	cout.precision(10);
	cout << avg << endl;
	
	/*for (i = 0; i < 20; i++)
	{
		delete[] lecture_name[i];
	}
	delete[] lecture_name;*/


	return 0;
}

0개의 댓글