C++的一道程序设计题,帮忙写一下

2024-12-29 17:04:14
推荐回答(2个)
回答1:

//Copyright@Pyyang 2008,Only for study of C++
//mail:mountian@mail.ustc.edu.cn
//编译环境GCC/MinGW Developer Studio

#include
#include

using namespace std;
int main()
{
ifstream in("data.txt");
ofstream out("data_out.txt");
if(!in)
cerr<<"unable to open data file!"< if(!out)
cerr<<"unable to creat out file!"< char ch;
char data[100];
int cnt=0;
for (int i=0;in.get(ch);i++) //读取文件存放在数组data[]中
{
data[i]=ch;
cnt++;

}
int data_int[100];

int j=0;

int temp=0;
for (int i=0;i {
if ((data[i]>='0')&&(data[i]<='9'))
temp=temp*10+data[i]-'0';
else
{
data_int[j]=temp;
temp=0;
j++;
}
}

for (int i=0;i {
for( int k=i+1;k {
if(data_int[i]>data_int[k])
{ temp=data_int[i];
data_int[i]=data_int[k];
data_int[k]=temp;
}
}
}
for (int i=0;i out < cout < }
return 0;

}

在MinGW Develop Studio 下编译通过

回答2:

#include
#include
#include
#include
#include
#include

using namespace std;

vector vec;
void find( double t )
{
vector::iterator it = find(vec.begin(),vec.end(),t );
if( it != vec.end() )
{
cout<<"位置是:"< }
else
{
cout<<"Not Find!"< vec.insert( find_if( vec.begin(),vec.end(),bind2nd(greater(),t) ),t);
}
copy(vec.begin(),vec.end(),ostream_iterator(cout," "));
cout<}

int main()
{

ifstream ifs("input.txt");
if( ifs.fail() )
return 1;
copy(istream_iterator(ifs),istream_iterator(),back_insert_iterator< vector >( vec ));
ifs.close();
copy(vec.begin(),vec.end(),ostream_iterator(cout," "));
cout< sort(vec.begin(),vec.end());
copy(vec.begin(),vec.end(),ostream_iterator(cout," "));
cout< cout<<"输入其中的一个数吧:";
double t1 = 0;
cin>>t1;
find(t1);
cout<<"输入一个不是的看看:";
cin>>t1;
find(t1);

return 0;
}

10 30 6 2 9 3 80 100
2 3 6 9 10 30 80 100
输入其中的一个数吧:30
位置是:5
2 3 6 9 10 30 80 100
输入一个不是的看看:11
Not Find!
2 3 6 9 10 11 30 80 100
请按任意键继续. . .

//近日时间有限,只好这样了,以后有时间再深究吧。。对不住。。