注册 登录
编程论坛 C语言论坛

任务:要求输入5个国名并按字母顺序排列后输出。在以前的例子中采用了普通的排序方法,逐个比较之后交换字符串的位置。总感觉有问题大佬们瞅瞅

mm1746886443 发布于 2019-12-09 22:19, 1137 次点击

#include<stdio.h>
#include<string.h>
main()
{
    void sort (char *name[],int n);
    void print(char *name[],int n);

    static char *name[]={"CHINA","AMERICA","AUSTRALIA",
        "FRANCE","GERMAN"};
    int n=5;
    sort(name,n);
    print(name,n);


}
void sort(char *name[],int n)
{
    char *pt;
    int i,j,k;
    for(j=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)
            {
                pt=name[i];
                name[i]=name[k];
                name[k]=pt;
            }
    }
}
void print(char *name[],int n)
{
    int i;
    for(i=0;i<n;i++)
        printf("%s\n",name[i]);
}
0 回复
1