#include<stdio.h>
#include<string.h>
int main()
{
void sort(char *string[],int n);
void print(char *string[],int n);
char *string[]={"Follow me","BASIC","Great Wall","FORTRAN","Computer design"};
int n=5;
sort(string,5);
print(string,5);
return 0;
}
void sort(char *string[],int n)
{
char *temp;
int j,i,k;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(strcmp(string[k],string[j])>0)
k=j;
if(k!=i)
{
temp=string[i];
string[i]=string[k];
string[k]=temp;
}
}
}
void print(char *string[],int n)
{
int i;
for(i=0;i<n;i++)
printf("%s\n",string[i]);
}
以上源程序正确,我想问的是定义sort函数可不可以换成以下
void sort(char *string[],int n)
{
char *temp;
int j,i;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
if(strcmp(string[i],string[j])>0)
{
temp=string[i];
string[i]=string[j];
string[j]=temp;
}
}
}
上面的是教材中的例题,我根本就想不到用那个k,如果两个都正确,那为什么教材要搞那么复杂呢?如果下面的不正确,那又错在哪了呢?
C语言大小字母输出