糊糊糊 发表于 2021-2-27 19:43:20

甲鱼老师上课讲的例题,不太懂

#include <stdio.h>
#include<string.h>

void main()
{
    void sort(char *name[],int n);
    void print(char *name[],int n);

    char *name[]={"fichc.com","www.fichc.com","good fichc.com","home fichc.com"};
    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=1;
      for(j=i+1;j<n;j++)
      {
            if(strcmp(name,name)>0)
            {
                k=j;
            }
            if(k!=i)
            {
                temp=name;
                name=name;
                name=temp;
            }
      }
    }
}
void print(char *name[],int n)
{
    int i;

    for(i=0;i<n;i++)
    {
      printf("%s\n",name);
    }
}

我不明白第二个for里面两个if到底是将四个字符串做了怎样的变化,看不太到这些代码的巧妙之处在哪里。望大佬指点指点迷津,谢谢大佬{:10_281:}{:10_266:}

hzx98 发表于 2021-2-27 22:30:41

单步调试看一下
页: [1]
查看完整版本: 甲鱼老师上课讲的例题,不太懂