/*
*作者:lws
*完成日期:2014/6/3
*问题描述:输入若干职工的工资(1000-10000的数字),将这些数字按降序排序后输出
*实现:写入数据后,按降序排序,输出到文件里
*/
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
int main()
{
double salarys[500],t;
int n=0,i=0,j=0;
ifstream infile("salary.txt",ios::in);//从salary.txt读取数据
if(!infile)
{
cerr<<"open error!"<<endl;
exit(1);//用到头文件cstdlib
}
while(infile>>salarys[n])
{
n++;
}
for(i=0;i!=n-1;i++) //按降序排序
{
for(j=i+1;j!=n;j++)
{
if(salarys[i]<salarys[j])
{
t=salarys[i];
salarys[i]=salarys[j];
salarys[j]=t;
}
}
}
ofstream outfile("ordered_salary.txt",ios::out);//向ordered_salaty.txt写入数据
//以out模式打开文件会丢弃已有数据
if(!outfile)
{
cerr<<"open error!"<<endl;
exit(1);
}
for(i=0;i!=n;i++)
{
outfile<<salarys[i]<<endl;
if(i%5==0) cout<<endl;
cout<<salarys[i]<<"\t";
}
outfile.close(); //关闭
infile.close();
return 0;
}