北大poj 1002为什么会是wrong answer?是有什么情形没有考虑么还是什么? 40

代码如下,求大神赐教,不胜感激。#include<iostream>#include<iomanip>usingnamespacestd;//调用库函数qsortintc... 代码如下,求大神赐教,不胜感激。
#include<iostream>
#include<iomanip>
using namespace std;

//调用库函数qsort
int cmp(const void * a, const void *b)
{
return *( int *) a- * (int *) b;
}

int main()
{

int num; //输入的电话号码数目
cin>>num;getchar(); //getchar()将换行符接收掉

int * a=new int [num]; //a存放num个电话号码

int i;
int k=0; //k 表示符合条件的电话号码数目

char c;
for(i=0; i<num; i++) a[i]=0;

for(i=0; i<num; i++) //读入num个电话号码并存入a数组中
{
c=cin.get();
while( c !='\n' )
{
if( c<58 && c>47)
a[i] = a[i] *10 +c-48;
else if( c>64 && c<91)
switch(c)
{
case 'A':
case 'B':
case 'C': a[i] = a[i]*10 +2;break;
case 'D':
case 'E':
case 'F':a[i] = a[i] *10 +3;break;
case 'G':
case 'H':
case 'I':a[i] = a[i] *10 +4;break;
case 'J':
case 'K':
case 'L':a[i] = a[i] *10 +5;break;
case 'M':
case 'N':
case 'O':a[i] = a[i] *10 +6;break;
case 'P':
case 'R':
case 'S':a[i] = a[i] *10 +7;break;
case 'T':
case 'U':
case 'V':a[i] = a[i] *10 +8;break;
case 'W':
case 'X':
case 'Y':a[i] = a[i] *10 +9;break;
default:break;
}
c=cin.get();
}

}

int count=0; int sum=1; int p=1;
qsort(a,num,sizeof(a[0]),cmp); //先将num个电话号码排序

//对于已经排好序的数组a,从头扫到尾,找到相同的电话并从数组a的开头存放,结束时存放了k个
for( i=0; i<num-1; i++)
{
if(a[i]== a[i+1] )
{
p++;
if( i !=num-2)
{
continue;
}
else
{
count=1;
a[k]=a[i]*10 +p;
k++;
}
}
else
{
if(p != 1)
{
count=1;
a[k]=a[i]*10 +p;
p=1;
k++;
}
else
continue;
}

}
if(count==0)
cout<<"No duplicates."<<endl;
for(i=0; i<k; i++)
{
cout<<setw(3)<<setfill('0')<<a[i]/100000<<'-'<<setw(4)<<setfill('0')<<a[i]%100000/10<<' '<<a[i]%10<<endl;
}

delete []a;
return 0;
}
给点建议也行,因为实在不知道是哪里出错了。
展开
 我来答
红格子18
2012-03-16
知道答主
回答量:3
采纳率:0%
帮助的人:3.1万
展开全部
我也经常遇到这样的问题、纠结、有老师指导就好了!~
追问
呵呵。我改好了。因为这几天一直都没有人回答,然后我就只能看看别人的代码,发现有些感悟了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
偶耐韩宝宝
2012-03-18 · TA获得超过104个赞
知道答主
回答量:99
采纳率:0%
帮助的人:53.2万
展开全部
.........
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式