为什么runtime error???
#include<iostream>
#include<cstring>
#include<memory>
using namespace std;
int main()
{
int n;
cin>>n;
char pre[105][105];
int *preNum = new int[n];
for(int i = 0; i < n; i++)
preNum[i] = 1;
for(int i = 0; i < n; i++)
{
char *text = new char[105];
memset(text,'\0', sizeof(text));
cin>>text;
int j=0, k =0;
while(text[j] != '\0')
{
if(text[j] == '-')
{
j++;
continue;
}
switch(text[j++])
{
case'0': pre[i][k++] = '0';break;
case'1': pre[i][k++] = '1';break;
case'A':case'B':case'C':case'2': pre[i][k++] = '2';break;
case'D':case'E':case'F':case'3': pre[i][k++] = '3';break;
case'G':case'H':case'I':case'4': pre[i][k++] = '4';break;
case'J':case'K':case'L':case'5': pre[i][k++] = '5';break;
case'M':case'N':case'O':case'6': pre[i][k++] = '6';break;
case'P':case'R':case'S':case'7': pre[i][k++] = '7';break;
case'T':case'U':case'V':case'8': pre[i][k++] = '8';break;
case'W':case'X':case'Y':case'9': pre[i][k++] = '9';break;
default:break;
}
if(k == 3)
{
pre[i][k++] = '-';
}
}
pre[i][k] = '\0';
}
for(int i = 0; i < n-1;i++)
{
for(int j = i + 1; j < n;j++)
{
if(strcmp(pre[i], pre[j]) > 0)
{
char stmp[105];
strcpy(stmp, pre[i]);
strcpy(pre[i],pre[j]);
strcpy(pre[j], stmp);
}
}
}
for(int i = 1; i < n; i++)
{
for(int j = 0; j < i; j++)
{
if(strcmp(pre[i],pre[j]) == 0)
{
preNum[j]++;
break;
}
}
}
bool flag = false;
for(int i = 0; i < n; i++)
{
if(preNum[i]>1)
{
flag = true;
cout<<pre[i]<<" "<<preNum[i]<<endl;
}
}
if (flag == false)
cout<<"No duplicates."<<endl;
return 0;
}
pku acm 1002题,runtime error了,自己测试没错。谁能帮我看看为什么?只剩35分了