要找工作了,找一些基础题做做,随手记一下
题:输入若干(不超过1000个)非负整数数字,请先取出为奇数的数字按从大到小排序,再取出偶数从小到大进行排序。解决代码:#include <iostream>
#include <stdlib.h>
#include <vector>
#include <algorithm>
using namespace std;
bool comp(const int &a,const int &b)
{
return a>b;
}
int Init(int *data,string input)
{
int index=0;
int startpos=0,stoppos=0;
int length;
length = input.length();
while(stoppos<input.length())
{
stoppos=input.find(" ",startpos);
if(-1==stoppos)
{
if(startpos<length)
{
*(data+index)=atoi(input.substr(startpos,stoppos-startpos).c_str());
++index;
}
break;
}
if(startpos!=stoppos)
{
*(data+index)=atoi(input.substr(startpos,stoppos-startpos).c_str());
++index;
}
startpos=stoppos+1;
}
return index;
}
void Sort_Spec(int *data,int count)
{
vector<int> value_j,value_o;
for(int i=0;i<count;++i)
{
if(*(data+i)%2!=0)
{
value_j.push_back(*(data+i));
}
else
{
value_o.push_back(*(data+i));
}
}
sort(value_o.begin(),value_o.end());
sort(value_j.begin(),value_j.end(),comp);
vector<int>::iterator it_j,it_o;
int index=0;
for(it_j=value_j.begin();it_j!=value_j.end();it_j++)
{
*(data+index)=*it_j;
index++;
}
for(it_o=value_o.begin();it_o!=value_o.end();it_o++)
{
*(data+index)=*it_o;
index++;
}
}
int main()
{
string input;
getline(cin,input);
int data;
int count=Init(data,input);
Sort_Spec(data,count);
for(int i=0;i<count;++i)
{
cout << data << " ";
}
return 0;
}
{:301_985:}{:301_985:}完全没看懂 魔术使nqy 发表于 2016-9-9 21:58
楼主我想问一下要成为一个程序员要什么条件啊?会C或者C++就可以了吗?还需要学其他哪方面的知识啊???? ...
{:301_1008:}不一定是C/C++ 只要能够熟练使用编程语言你就成为名副其实的码农辣注:编程语言有很多例如javaC# VCVB C++swiftobjective-c 等。。。。{:301_1008:}
完全看不懂 就一道题?c++的程序..不明白楼主要干什么 cqr2287 发表于 2016-9-9 21:19
就一道题?c++的程序..不明白楼主要干什么
就是单纯的记录下{:1_936:} 青史无疆 发表于 2016-9-9 21:29
就是单纯的记录下
哦哦,期待楼主更多的记录 cqr2287 发表于 2016-9-9 21:19
就一道题?c++的程序..不明白楼主要干什么
感觉获取不定数量的数并处理,对新手有一定帮助 正在学C语言,这个效果目前我还做不到,如果一开始知道要输入数字的数量还可以用C写{:301_1007:} 楼主我想问一下要成为一个程序员要什么条件啊?会C或者C++就可以了吗?还需要学其他哪方面的知识啊????
魔术使nqy 发表于 2016-9-9 21:58
楼主我想问一下要成为一个程序员要什么条件啊?会C或者C++就可以了吗?还需要学其他哪方面的知识啊???? ...
我也还是新手,刚开始找工作{:1_936:},投了个华为,感觉没望了.......