编译通不过,求人帮我运行下,看是不是编译器问题
照着书抄写的,编译通不过,下面是代码#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(); 这一句通不过,看错误信息好像是缺头文件还是什么,但是我和书上例题对了好几遍,没问题的,求帮我运行下看是不是我的编译器问题,谢谢,