?? test.cpp
字號:
#include<iostream>
#include<string>
#include<memory>
#include<cmath>
#include<iomanip>
#define len 20
int compare(const void*a,const void*b);
using namespace std;
int main()
{
int n;
cin>>n;
cin.get();
char a[26]={'2','2','2','3','3','3','4','4','4','5','5','5','6','6','6','7','7','7','7','8','8','8','9','9','9','9'};
char (*num)[8]=new char[n][8];
char (*str)[len]=new char[n][len];
int i=0,j=0,k=0;
for(i=0;i<n;i++)
{
cin.getline(str[i],len);
for(j=0;str[i][j]!='\0';j++)
{
if((str[i][j]>='A')&&(str[i][j]<='Z'))
{
int temp=str[i][j]-'A';str[i][j]=a[temp];
}
if(str[i][j]!='-')
{
num[i][k]=str[i][j];
k++;
}
}
num[i][k]='\0';
}
int unit=sizeof(num[0]);
qsort((void*)num,n,unit,compare);
//輸出
bool prime=false;
int jishu[10000];
memset(jishu,0,100000);
int num_i=0;
jishu[0]=1;
for(i=1;i<n;i++)
{
if(!strcmp(num[i],num[i-1]))
{
prime=true;
jishu[num_i]++;
}
else
{
num_i++; jishu[num_i]++;
if(jishu[num_i-1]>1)
{
for(j=0;j<3;j++)
cout<<num[num_i-1][j];
cout<<'-';
for(j=3;j<7;j++)
cout<<num[num_i-1][j];
cout<<' '<<jishu[num_i-1]<<endl;
}
}
}
if(!prime)
cout<<"No duplicates"<<endl;
delete []num;
delete []str;
return 0;
}
int compare(const void*a,const void*b)
{
return strcmp(*(char**)a,*(char**)b);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -