[2005년 기말 1번] 성적 처리 - 동적 할당 / vector STL
목적
- 동적 할당에 대해 이해하고 입력을 받아서 자료를 추가 및 처리 할줄 안다.
문제
코드
#include <iostream>
#include <cstring>
#include <vector>
using namespace std;
int main(void)
{
vector<double> stlVector;
int i = 0;
char *sName, *sId;
char sIn[255] = {0};
double dIn, dTotal;
dIn = dTotal = 0.0;
sName = sId = NULL;
cout << "학번 : ";
cin.getline(sIn,255);
sId = new char[strlen(sIn) + 1];
strcpy(sId, sIn);
cout << "이름 : ";
cin.getline(sIn,255);
sName = new char[strlen(sIn) + 1];
strcpy(sName, sIn);
cout << "네 과목의 성적 : ";
for(i = 0; i <= 3; i++)
{
cin >> dIn;
stlVector.push_back(dIn);
dTotal += stlVector[i];
}
cout << sId << ' ' << sName << " 의 평균 점수는 " << dTotal / i << " 입니다." << endl;
delete sName, sId;
return 0;
}
해설
- vector STL 자료형은 이전 문제에서 자세히 다루었습니다. 참고 하시기 바랍니다.
- 나머지 부분은 크게 어렵지 않습니다.
- 문자열 포인터를 생성후 동적으로 입력 받은 글자의 길이만큼 새로 생성하여 추가하는 방식을 썼습니다. 생성 및 삭제에 new / delete 명령어가 쓰입니다.
참고
- vector STL 다루었던 문제