void main() { char *p[5]; char *d; int i,j; printf("输入5个城市\n"); for(i=0;i<5;i++) { gets(*(p[i])); } for(i=0;i<5;i++) { for(j=0;j<4-i;j++) { if(strcmp(p[j],p[j+1])>0) { d=p[j]; p[j]=p[j+1]; p[j+1]=d; } } } printf("按字母排列如下\n\n"); for(i=0;i<5;i++) { printf("%s\n",p[i]); } } 这是道输入5个城市 按字母顺序输出的题 后面都没问题,就是给字符指针数组赋值的时候总是报错,是不是这种赋值方法有误,请过路的朋友指点下~谢谢