首页 > 试题广场 >

编写一个排序函数fun,主程序调用它将输入的若干个字符串采用

[问答题]
编写一个排序函数fun,主程序调用它将输入的若干个字符串采用直接选择排序方法递增排序。要求函数以指向字符串的指针p和字符串个数n为参数。
推荐
#include <stdio.h>
#include <string.h>
#define Max 20
void fun(char * p[ ],int n)        /*采用直接选择排序序方法递增排序*/
{
    int i,j,k;
    char * tmp;
    for (i=0;i<n-1;i++ )        /*做第i趟排序(0≤i≤N-2)*/
    {    k=i;
        for (j=i+1;j<n;j++ )        /*在无序区p[i..N-1]中选最小者p[k]*/
            if (strcmp(p[j],p[k])<0)
                k=j;            /*k记下目前找到的最小这者的位置*/
        if (k!=i)
        {    tmp=p[i];
           p[i]=p[k];             /*pi]<->[k]*/
           p[k]=tmp;
        }
    }
}
void main()
{
    int i,n;
    char a[Max] [40];
    char * p[Max];
    printf("String%d:",i+1);
    scanf("%s",a[i]);
    for (i=0;i<n;i++ _)
    {    printf("String%d:",i+1);
       scanf("%s",a[i]);
       p[i]=a[i];
    }
    fun(p,n);
    printf("执行结果:\n");
    for (i=0;i<n;i++ )
        printf("p[ %d]= %s\n",i,p[i]);
}

发表于 2018-05-07 14:11:42 回复(0)