#include <stdio.h> #include <string.h> #define Max 20 void fun(char * p[ ],int n) /*采用直接选择排序序方法递增排序*/ { int i,j,k; char * tmp; for (i=0;i<n-1;i++ ) /*做第i趟排序(0≤i≤N-2)*/ { k=i; for (j=i+1;j<n;j++ ) /*在无序区p[i..N-1]中选最小者p[k]*/ if (strcmp(p[j],p[k])<0) k=j; /*k记下目前找到的最小这者的位置*/ if (k!=i) { tmp=p[i]; p[i]=p[k]; /*pi]<->[k]*/ p[k]=tmp; } } } void main() { int i,n; char a[Max] [40]; char * p[Max]; printf("String%d:",i+1); scanf("%s",a[i]); for (i=0;i<n;i++ _) { printf("String%d:",i+1); scanf("%s",a[i]); p[i]=a[i]; } fun(p,n); printf("执行结果:\n"); for (i=0;i<n;i++ ) printf("p[ %d]= %s\n",i,p[i]); }
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题