#include <stdio.h> #include <string.h> #define Max 10 void main() { char str[Max][20]; char * p[Max], * tmp; int i,j,n,exchange; printf("n:"); scanf("%d",&n); for (i=0;i<n;i++ ) /* n<=10 */ { p[i]=str[i]; printf("String%d:",i+1); scanf("%s",p[i]); } for (i=0;i<n-1;i++ ) /* 最多做n-1趟排序 */ { exchange=o; for (j=n-2;j>=i;j-- ) if (strcmp(p[j+1],p[j])<0) /* 交换元素 */ { tmp=p[j+1]; /* tmp暂存数组元素,用于元素交换 */ p[j+1]=p[j]; p[j]=tmp; exchange=1; /* 发生了交换,故将交换标志置为真 */ } if (!exchange) /* 本趟未发生交换,提前终止算法 */ break; } printf{"排序后:\n"); for (i=0;i<n;i++ ) printf(" %s\n",p[i]); }
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题