华为机试——数字处理
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<<" "; }
相关文章推荐
- Android 系统级别广播
- WinForm 对Web Api 增 册 改 查 的基本操作
- Unity3d 开发(六) 5.x AssetBundle使用
- 图片预加载
- Web App 响应式页面制作 笔记整理
- 你必须知道的28个HTML5特征、窍门和技术
- java中文件读取操作
- ubuntu提示"您的当前网络有.local域,网络服务探测被禁用"
- android canvas drawBitmap方法详解
- Quartz 2D之基本图形绘制
- JApiTest的selenium测试脚本
- svn建立分支和svn代码合并的操作方法
- Unity3D入门
- linux文件操作学习1
- uva1146Now or later飞机调度【2-SAT】入门题
- gradle失败
- 安装office2010时出现1402错误
- 从30岁到35岁:为你的生命多积累一些厚度
- 从零开始搭建微信硬件开发环境全过程——1小时掌握微信硬件开发流程
- jQuery动画效果图片轮播特效