二级指针
#include<stdio.h>#include<string.h>
void chswap(char** s1,char** s2)
{
char* tmp;
tmp=*s1;
*s1=*s2;
*s2=tmp;
}
int main(void)
{
int n,k,i,j;
scanf("%d %d",&n,&k);
char str[n][11];
for(i=0;i<n;i++)
scanf("%s",str[i]);
for(j=0;j<k;j++)
for(i=0;i<n-j-1;i++)
if(strcmp(str[i],str[i+1])>0)
chswap(&str[i],&str[i+1]); //这句改成chswap(str[i],str[i+1]);也正确,这是为什么????
for(i=0;i<n;i++)
printf("%s\n",str[i]);
return 0;
}
[ 本帖最后由 三个人 于 2014-8-12 12:08 编辑 ]