[求助]关于排序的问题!
题目:图书馆有若干本图书,现在图书顺序比较混乱,请你按图书名(字符的字典顺序)的顺序对它们进行排序,并输出排序后的内容.#include<stdio.h>
#include<string.h>
#define N 5
void sort(char *name[],int n);
void print(char *name[],int n);
int main()
{
static char name[][80]={"e","d","c","b","a"};
char *point[N];
int j;
for(j=0;j<N;j++)
point[j]=name[j];
sort(point,N);
return 0;
}
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]);
}
问题:在void sort(char *name,int n){}这个函数中的排序,内循环, for(j=i+1;j<n;j++){};每循环一次k的值就被赋一次,那k岂不是没有作用了,还有,if(k!=i)是等内循环完后才排序,那怎么解释,好像达不到排序的效果,要是把if(k!=i){}中的语句放在内循环里我能理解!