2005/07/22

3장 2번째 프로그램인뎅....책대로 쳤는데 에러남..ㅡㅜ
2번째랑 3번째 에러는 1번째에서 에러나니까 당연한거 같은데...
첫번째가 왜 안될까욤???@,.@

~cpp 
#include <algorithm>
#include <iomanip>
#include <ios>
#include <iostream>
#include <string>
#include <vector>

using std::cin;		using std::sort;
using std::cout;	using std::streamsize;
using std::endl;	using std::string;
using std::setprecision;	using std::vector;

int main()
{
	cout << "Please enter your first name: ";
	string name;
	cin >> name;
	cout << "Hello, " << name << "!" << endl;

	cout << "Please enter yourmidterm and final exam grades: ";
	double midterm, final;
	cin >> midterm >> final;

	cout << "Enter all your homework grades, "
		"followed by endoffile:";
	vector<double> homework;
	double x;

	while (cin >> x)
		homework.push_back(x);
	typedef vector<double>::size_type vec_sz;  // 요기 에러1
	vec_sz size = homework.size();             // 요기 에러2
	if(size == 0) {
		cout << endl << "You must enter your grades. "
			"Please try again." << endl;

		return 1;
	}

	sort(homework.begin(),homework.end());
	vec_sz mid = size/2;                       // 요기 에러3
	double median;
	median = size %2 == 0 ? (homework[mid] + homework[mid-1])/2
		:homework[mid];

	streamsize prec = cout.precision();
	cout << "Your final grade is " << setprecision(3)
		<< 0.2* midterm + 0.4*final + 0.4*median
		<< setprecision(prec) << endl;

	return 0;
}

Answer.

  • VS6가 무슨이유인지는 모르겠으나 namespace 가 표준을 지원하지 않는 것 같기도하고, 하여간 namespace 문제입니다.
    소스를 그대로 쓰고 싶다면 ZP서버에서 gcc로 돌리면 됩니다. 서버가 성능이 별로인 관계로 비추합니다.
    그렇지 않고 VS6에서 하고 싶다면
    using 지시자로 지정된 부분을 using namespace std; 로 바꾸면 정상적으로 동작합니다.
    .net 은 어떤지 모르겠네요. - eternalbleu
    1학년들이 가지고 배우는 Dev-CPP가 gcc 기반이라는 군요. 이걸로 돌려도 될 듯 하네요. 참고하셈 - eternalbleu
  • 음... g++ 이요~ - 이영호
  • 찹고로 g++은 gcc에 c++관련 라이브러리를 자동으로 링킹해주는 역할을합니다.
    g++ test.cpp -o test
    gcc -lstdc++ test.cpp -o test
    동일한 결과를 얻을 수 있을듯합니다. - eternalbleu


Retrieved from http://wiki.zeropage.org/wiki.php/CPPStudy_2005_1/질문
last modified 2021-02-07 05:22:42