请问我的程序为什么错了? #define N 5 #define M 10 main() { char a[N][M],sort(); int i; for(i=0;i<N;i++) scanf("%s",a+i); sort(a); for(i=0;i<N;i++) printf("%s\n",a+i); }
char sort(char a[N][M]) {int i,j; char *p,*q,temp[M]; p=a;q=a+1; for(i=0;i<N;i++) for(j=1;j<5-i;j++) { if(strcmp(*p,*q)>0) { temp=*p; strcpy(*p,*q); strcpy(*q,temp); } p++;q++; } }
----------------解决方案--------------------------------------------------------
上面的程序输错了 #define N 5 #define M 10 main() { char a[N][M],sort(); int i; for(i=0;i<N;i++) scanf("%s",a+i); sort(a); for(i=0;i<N;i++) printf("%s\n",a+i); }
char sort(char a[N][M]) {int i,j;
char *temp[M],*p,*q; for(i=0;i<N;i++) {p=a;q=a+1; for(j=1;j<5-i;j++) { if(strcmp(*p,*q)>0) { strcpy(temp,*p); strcpy(*p,*q); strcpy(*q,temp); } p++;q++; } } }
我用的是冒泡排序,请问为什么不能交换数据
----------------解决方案--------------------------------------------------------