1、输入一行,输出一行,直到文件末尾,除去重复的数。
/*
STL解决
*/
#include
#include
#include
#include
using namespace std;
void GetNoReplicates()
{
string str;
vector result;
vector::iterator iter;
while(cin>>str)
{
int i=0;
int temp;
while(str[i]!='\0')
{
temp=0;
while(str[i]!='\0'&&str[i]!=',')
{
temp=10*temp+str[i]-'0';
i++;
}
if(str[i]=='\0')
{
result.push_back(temp);
vector copy;
copy.push_back(result[0]);
for(int j=1; j
/*
set记录排除集
*/
#include
#include
#include
using namespace std;
void GetNoReplicates()
{
int temp[4096];
int result[4096];
string str;
int num;
int j=0;
memset(temp,0,sizeof(int)*4096);
set hash;
while(cin>>str)
{
int i=0;
int r=0;
while(str[i]!='\0')
{
num=0;
while(str[i]!='\0'&&str[i]!=',')
{
num=10*num+str[i]-'0';
i++;
}
if(str[i]=='\0')
{
temp[j++]=num;
result[r++]=temp[0];
hash.insert(temp[0]);
for(int k=1;k
2、天数问题
输入:MM-YYYY,MM为月份,YYYY为年份,例如:08-2014
输出:指定年份和月份的天数。例如,08-2014,对应输出为31。
#include
#include
using namespace std;
void GetDays()
{
string str;
while(cin>>str)
{
int i=0;
int days;
int year=0,month=0;
while(str[i]!='\0'&&str[i]!='-')
{
month=month*10+str[i]-'0';
i++;
}
if(str[i]!='\0')
{
i++;
while(str[i]!='\0')
{
year=year*10+str[i]-'0';
i++;
}
}
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days=31;
break;
case 4:
case 6:
case 9:
case 11:
days=30;
break;
case 2:
if(year%4==0)
days=29;
else
days=28;
}
cout<
(2)字符串处理
输入:由数字和字母组成的字符串,例如:333aaabb55ppin
输出:数字后面的连续出现的(2个或多个)相同字符(数字或者字符),删去一个,非数字后面的不要删除,例如,对应输出为:33aaabb5ppin。
#include
#include
using namespace std;
void DeleteRepeatDigits()
{
string str;
while(cin>>str)
{
int i=0;
int j=0;
while(str[i]!='\0')
{
if(str[i]>'9'||str[i]<'0')
{
str[j++]=str[i++];
}
else
{
if((i-1>=0)&&(str[i-1]==str[i])&&(str[i]!=str[i+1]))
{
i++;
}
else
{
str[j++]=str[i++];
}
}
}
str[j]='\0';
cout<
(3)输入法编码
输入法的编码原理为:根据已有编码表,当输入拼音和数字后输出对应的字符。例如:
有如下编码:喜_xi 洗_xi 系_xi 无_wu 五_wu(字符和拼音之间用下划线隔开),那么当输入xi2时,结果为拼音位xi的第二个字符,即“洗”。
输入:Code
喜_xi
洗_xi
系_xi
无_wu
五_wu
Search
xi2
End
输出:洗
注意:当在编码表中查询不到时,结果为“Error”;当输入的拼音没有数字,即"xi"时,输出结果为:拼音为xi的前若干个字符,但是最多输出5个,即输出:喜;洗;系。
#include
#include
#include
是给出一个(1,10000]之间的数字n,让你输出里面所有的完数。完数神马的不懂?请自行百度= =
#include
#include
using namespace std;
vector GetAllNum(int n)
{
int num=2;
vector result;
vector yueShu;
int sum;
while(num<=n)
{
int i=2;
sum=0;
yueShu.clear();
while(i<=num)
{
if(num%i==0)
{
yueShu.push_back(num/i);
}
i++;
}
for(vector::iterator iter=yueShu.begin();iter!=yueShu.end();iter++)
sum+=*iter;
if(sum==num)
result.push_back(num);
num++;
}
return result;
}
void main()
{
int n;
cin>>n;
vector result=GetAllNum(n);
for(vector::iterator iter=result.begin();iter!=result.end();iter++)
cout<<*iter<
#include
#include
#include
using namespace std;
void GetString()
{
int lines=0;
int sizes=0;
string str;
vector input;
string linesSizes;
cin>>linesSizes;
int k=0;
while(linesSizes[k]!='\0'&&linesSizes[k]!=',')
{
lines+=lines*10+linesSizes[k]-'0';
k++;
}
if(linesSizes[k]==',')
k++;
while(linesSizes[k]!='\0')
{
sizes+=sizes*10+linesSizes[k]-'0';
k++;
}
while(lines--)
{
cin>>str;
input.push_back(str);
}
for(int i=0;i
#include
#include
#include
using namespace std;
const int nums=26;
bool compare(char a,char b)
{
return a>str;
int i=0;
int index=0;
while(str[i]!='\0')
{
if(hash[(str[i]-'a')]==1)
{
i++;
}
else
{
hash[(str[i]-'a')]=1;
str[index++]=str[i++];
}
}
str[index]='\0';
sort(str,str+index,compare);
cout<
(1)打印输出乘法口诀法
比如输入n
n=5;
打印输出
1
2,4
3,6,9
4,8,12,16
5,10,15,20,25
#include
using namespace std;
void Multiply()
{
int n;
cin>>n;
for(int i=1; i<=n; i++)
{
for(int j=1; j<=i; j++)
{
cout<
(2)判断两个字符串的匹配程度
存有n个名字{"xiaolin","han mei","li lin","xuelin","huangyu","zhang xue"}
输入的是一个字符串“li teng”,输出是最匹配的名字,假如有两个匹配,就输出第一个。比如li teng和li lin,l和li,lin,有两个匹配,就只能有一个。所以匹配数为3。
#include
#include
#include
using namespace std;
void Fit()
{
vector table;
table.push_back("xiaolin");
table.push_back("han mei");
table.push_back("li lin");
table.push_back("xuelin");
table.push_back("huangyu");
table.push_back("zhang xue");
string input;
//cin>>input;
getline(cin,input);
int max=0;
int temp=0;
int k=0;
string fit;
for(int i=0; imax)
{
max=k;
fit=table[i];
}
j=temp;
}
}
cout<>str2;
getline(cin,str3);
cout<
这题注意cin和scanf输入时遇到空白就结束,输入要用getline;