马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
#include <string.h>
void main()
{
void sort(char *name[], int n);
void print(char *name[], int n);
char *name[] = {"Fishc.com", "www.fishc.com", "home.fishc.com", "Fishc.com/dz"};
int n = 4;
sort(name, n);
print(name, n);
}
void sort(char *name[], int n)
{
char *temp;
int i, j, k;
for( i=0; i < n-1; i++ )
{
k = i;
for( j=i+1; j < n; j++ )
{
if( strcmp(name[k], name[j]) > 0 )
{
k = j;
}
if( k != i )
{
temp = name[i];
name[i] = name[k];
name[k] = temp;
}
}
}
}
void print(char *name[], int n)
{
int i;
for( i=0; i < n; i++ )
{
printf("%s\n", name[i]);
}
}
当中if( k != i )是什么意思和意义
不是太理解
我把字符串改为数字 来演算该程序 结果 并不是按从小到大 输出
我修改的#include <stdio.h>
#include <string.h>
void main()
{
void sort(char *name[], int n);
void print(char *name[], int n);
char *name[] = {"2", "6", "3", "4"};
int n = 4;
sort(name, n);
print(name, n);
}
void sort(char *name[], int n)
{
char *temp;
int i, j, k;
for( i=0; i < n-1; i++ )
{
k = i;
for( j=i+1; j < n; j++ )
{
if( strcmp(name[k], name[j]) > 0 )
{
k = j;
}
if( k != i )
{
temp = name[i];
name[i] = name[k];
name[k] = temp;
}
}
}
}
void print(char *name[], int n)
{
int i;
for( i=0; i < n; i++ )
{
printf("%s\n", name[i]);
}
}
所以请教一下 到底为什么if( k != i )
|