输入double型的数据并进行排序,利用vector和迭代器解决。十万火急啊。谢谢。
#include<iostream> //题目的要求是输入double型的数据直到输入0为止(0计算在内)并得出这些数据的最小值和最大值。#include<vector>
using namespace std;
int main()
{vector<double> a; //定义一个double类型的容器。
double number,t;
vector<double>::iterator q,p;
p=q;
q=a.begin();
while(cin>>number)//将输入的double型 number 变量存储到容器a中
{a.push_back(number);
if(*q==0)
break;
++q;
}
int total,i,j;
total=a.size();//得到容器内数据的个数。
for(i=0;i<total-1;i++)//将容器内的数据从小到大进行排序。
{for(j=i+1;j<total;j++)
{if((*(p+i))>(*(p+j)))
{t=(*(p+i));
(*(p+i))=(*(p+j));
(*(p+j))=t;
}
}
}
cout<<*p<<endl;//输出最小的数据
cout<<*(p+total-1)<<endl;//输出最大的数据。
return 0;
} //这个是我写的代码,编译没有错误但是运行结果是segmentation fault.
[ 本帖最后由 fl8962 于 2013-10-25 08:09 编辑 ]