很多问题应该 二级指针啊等
程序代码:
#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://
里面有很大问题应该 我感觉理解错意思了 请大侠指教
献上第一个百分 呵呵