很多问题应该 二级指针啊等
程序代码:#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc,char *argv[])
{
unsigned int num; // num up to 100000
int i,j,n,mark=0,k,len; // 各标记
char **ch=NULL,*pstr=NULL; // 字符指针存放指针
printf("请输入电话号码数!\n");
scanf("%d\n",&num);
for(i=0;i<num;i++)
{
*(ch+i)=(char*)malloc(20*sizeof(char)); // 动态分配内存
gets(*(ch+i));
// 处理号码中的大写字母
len=strlen(ch[i])-1;
for(j=0;j<=len;j++)
{
n=ch[i][j];
switch(n)
{
case 65: case 66: case 67:
ch[i][j]='2';break;
case 68: case 69: case 70:
ch[i][j]='3';break;
case 71: case 72: case 73:
ch[i][j]='4';break;
case 74: case 75: case 76:
ch[i][j]='5';break;
case 77: case 78: case 79:
ch[i][j]='6';break;
case 80: case 82: case 83:
ch[i][j]='7';break;
case 84: case 85: case 86:
ch[i][j]='8';break;
case 87: case 88: case 89:
ch[i][j]='9';break;
default: break;
}
// 除去字符串中的'-'
for(j=0;j<=len;j++)
if(ch[i][j]=='-')
for(k=j+1;k<=len;k++)
ch[i][k-1]=ch[i][k];
// 插入连接符
for(j=len;j>=4;j--)
ch[i][j+1]=ch[i][j];
ch[i][j]='-';
ch[i][len+1]='\0';
}
// 按照字典中字母顺序输出
for(i=0;i<num;i++)
{
pstr=ch[i];
for(j=i;j<num;j++)
{
if(strcmp(ch[i],ch[j+1])<0)
pstr=ch[j+1];
if(strcmp(ch[i],ch[j+1])==0)
mark++;
}
if(mark==1)
printf("No duplicates");
else
printf("%s %d\n",ch[i]);
mark=0;
}
return 0;
}
上段代码运行输入后回崩溃题目是http://
里面有很大问题应该 我感觉理解错意思了 请大侠指教
献上第一个百分 呵呵









