首页 > 试题广场 >

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

[问答题]
编写一个排序函数fun,主程序调用他将输入的若干个字符串采用冒泡排方法递增排序。要求函数以指向自妇产的指针p和字符串个数n为参数。
推荐
#include <stdio.h>
#include ,string.h>
#define Max 20;
void fun(char * p[ ],int n)            /*采用冒泡排序方法递增排序*/
{
    int i,j,exchange;               /*交换标志*/
    char * tmp;
    for (i=0;i<n-1;i++ )                 /*最多做n-1趟排序*/
        if (strcmp(p[j+1],p[j])<0)        /*交换元素*/
        {    tmp=p[j+1];           /*tmp暂存数组元素,用于元素交换*/
            p[j+1]=p[j]; 
            p[j]=tmp;
            exchange=1;        /*发生了交换,故将交换标志置为真*/
        }
    if (!exchange)                      /*本趟未发生交换,提前终止算法*/
            return;
    }
}
void main()
{
    int i,n;
    char a[Max] [40];
    char * p[Max];
    printf("n:");
    scanf("%d",&n);
    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:10:56 回复(0)