注册 登录
编程论坛 C++教室

编译通不过,求人帮我运行下,看是不是编译器问题

fc176154001 发布于 2013-10-26 21:28, 507 次点击
照着书抄写的,编译通不过,下面是代码
#include"iostream"
#include"algorithm"
#include"ios"
#include"iomanip"
#include"string"
#include"vector"
using std::cout;    using std::cin;
using std::endl;    using std::string;
using std::vector;  using std::setprecision;
using std::streamsize; using std::sort;
int main()
{
    cout<<"请输入学生姓名:";
    string name;
    cin>>name;
    cout<<"Hello, "<<name<<"!"<<endl;
    cout<<"请输入学生期中和期末成绩:";
    double midterm,final;
    cin>>midterm>>final;
    cout<<"请输入学生家庭作业成绩:";
    double x;
    vector<double> homework;  
    while(cin>>x)  //家庭作业成绩循环输出并存放于向量 homework中
        homework.push_back(x);
    vector<double>::size_type n=homework.size();   //定义变量n表示向量homework长度,但是就是这一句编译过不了,照书抄写的。
    if(n==0)
    {
        cout<<"学生家庭作业成绩为空,程序自动退出!"<<endl;
        return 1;
    }
    sort(homework.begin(),homework.end());//排序向量homework中的数据
    double mid=(n%2==0)?(homework[n/2-1]+homework[n/2])/2:homework[n/2];//取向量homework中的中间值
    streamsize prec=cout.precision();
    cout<<"该学生综合成绩为:"<<setprecision(3)//以三位有效数输出学生成绩,
        <<0.2*midterm+0.4*final+0.4*mid<<setprecision(prec)
        <<endl;
    return 0;
}
主要是vector<double>::size_type n=homework.size();   这一句通不过,看错误信息好像是缺头文件还是什么,但是我和书上例题对了好几遍,没问题的,求帮我运行下看是不是我的编译器问题,谢谢,
3 回复
#2
fc1761540012013-10-26 21:29
我将n定义成int类型程序是可以运行的,
#3
rjsp2013-10-28 08:31
我能编译通过
#4
peach54602013-10-28 08:43
我也可以编译通过
GCC4.8
1