#include <stdio.h> #include <string.h> #define Max 10 void main() { char str[Max] [20] char * p[Max}, *tmp; int i,j,k,n; printf("n:"); scanf("%d",&n); /*n<=10*/ for (i=0;i<n;i++) { p[i]=str[i]; printf("String"%d:",i+1); scanf("%s",p[i]); } for (i=0;i<n-1;j<n;j++ ) /*做第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]<->[k]*/ p[i]=p[k]; p[k]=tmp; } } printf("排序后:\n"); for (i=0;i<n;i++ ) printf(" %s\n",p[i]); }
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题