c语言的程序理解问题!!请教高手

来源:百度知道 编辑:UC知道 时间:2024/05/18 00:18:21
最近刚开始学习C语言
这边有段程序看不懂,麻烦高手从“for(i=0;i<n-1;i++)”的地方开始逐行解释一下,谢谢
这是一段将若干字符串按字母顺序(由小到大)输出的程序
程序如下:
#include <string.h>
main()
{void sort(char *name[],int n);
void print(char *name[],int n);
char *name[] = {"follow me","basic","great wall","fortran","computer design"};
int n = 5;
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++)
print("%s\n",name[i]);
}

strcmp是比较字符串函数!~~~ for后面的就是比较字符串大小 将如果前面的字符串小于后面的字符串就进行交换!~否则不换!~~就形成了从大到小依次排序!~~~~~~~~~~~~
void print就是依次输出里面的字符串!~~~~~~

这是简单的选择排序算法的应用,只是将整数换成了字符串而已。你可以去看看简单的选择排序算法。看懂那个这个就好理解了!