您的位置:首页 > 其它

华为机试——数字处理

2016-01-12 16:36 316 查看

将第一行中含有第二行中“23”的数输出并排序

输入第一行数字:123 423 5645 875 186523

在输入第二行中:23

将将一行中含有第二行中“23”的数字输出并排序

结果即:123 423 186523

方法一:

#include<iostream>
#include<algorithm>
#define N 100
using namespace std;
int main()
{
int a
,temp,s,i,j;
int sort
,t=0;
char ch=' ';
i=0;
while(ch!='\n') //存储数据
{
cin>>temp;
a[i]=temp;
i++;
ch=cin.get();
}
cin>>s;
for(j=0;j<i;j++)//查找关键数据
{
temp=a[j];
while(temp>0)
{
if(temp%100==s)
{
sort[t]=a[j];
t++;
break;
}
else
temp=temp/10;
}
}

for(i=0;i<t-1;i++)
for(j=i+1;j<t;j++)
if(sort[i]>sort[j])
{
temp=sort[i];
sort[i]=sort[j];
sort[j]=temp;
}

for(i=0;i<t;i++)
cout<<sort[i]<<" ";
return 0;
}


方法二:

#include<iostream>
#include<string>
#include<vector>
#include<sstream>
#include<algorithm>
using namespace std;

int main()
{
string str;
vector<string> input;
vector<int> result;
string num;
string findnum;
int tmp;
getline(cin,str);
istringstream stream(str);
while(stream>>num)
input.push_back(num);
cin>>findnum;
for(vector<string>::iterator it=input.begin();it!=input.end();it++)
{
if((*it).find(findnum) !=string::npos)
{
tmp=atoi((*it).c_str());
result.push_back(tmp);
}
}
sort(result.begin(),result.end());
for(vector<int>::iterator it=result.begin();it!=result.end();it++)
cout<<*it<<" ";

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: