错误的地方很有可能出现在我标记的地方(见程序),但是我本人找不出来,求帮忙!求指教输出就是不对不知道什么原因。
#include
#include
#include
#include
using namespace std;
int LetterToInt[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
};
int DiaNum[100000];
int Numcounter[100000];
int main()
{
int i,j,n;
while(scanf("%d",&n ) != EOF)//设置文件输入终止条件
{
DiaNum[n]=0x7FFFFFFF;
Numcounter[n]=0;
char str[20];
for (i=0 ; i
{
DiaNum[i]=0;
Numcounter[i]=0;
cin>>str;
/*可能就是下面这段错了*/
for(int j=0;str[j]!='\0';++j)
{
if(str[j]>='0' && str[j] <= '9' )//如果输入为数字
DiaNum[i]=DiaNum[i]*10+str[j]-'0';
if(str[j]>='A'&&str[j]<='Z')//如果输入为字母
DiaNum[i]=DiaNum[i]*10+LetterToInt[str[j]-'A'];
}
}
//后面一段代码是控制输出
sort(DiaNum,DiaNum+n);//排序
bool exist=false;
for(i=0,j=0;i<=n;)
{
if(DiaNum[j]==DiaNum[i])
{
++i;
Numcounter[j]++;
}
else
{
if(Numcounter[j]>1)
{
exist = true;
cout<<DiaNum[i]/10000<<"-"<<DiaNum[i]%10000<<" "<<Numcounter[j]<<endl;
}j=i;
}
}
if(!exist)
cout<<"No duplicates\n";
}
return 0;
}