| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 615 人关注过本帖
标题:/*采用选择发对一组数据进行升序或排序*/怎么编译不出来啊!请高手请教
只看楼主 加入收藏
chen4778482
Rank: 1
来 自:江西
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-12-2
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:2 
/*采用选择发对一组数据进行升序或排序*/怎么编译不出来啊!请高手请教
#include <stdio.h>
#define N10
void bubble(int *,int,int(*)(int,int));
int ascending(int,int);
int descending(int,int);
void main()
{
    int i,order,a[N]={3,7,9,11,0,6,7,5,4,2};
    printf("输入1-----升序排列\n");
    printf("输入2-----降序排列");
    scanf("%d",&order);
    printf("初始数据;\n");
    for(i=0;i<N;i++)
        printf("%4d",a[i]);
    if(order==0)
    {
        bubble(a,N,ascending);
        printf("\n升序排列:\n");
    }
    else
    {
        bubble(a,N,descending);
        printf("\n降序排列:\n");
    }
    for(i=0;i<N;i++)
        printf("%4d",a[i]);
    printf("\n");
}
void bubble(int *pa,int n,int(*pa) (int,int))
{
    int i,j,k;
    void swap(int *,int *);
    for(i=0;i<n-1;i++)
    {
        k=1;
        for(j=i+1;j<n;j++)
            if((*ph) (pa[j],pa[k]))  k=j;
            if(k!=i)  swap(&pa[j])(&pa[k]);
    }

}
void swap(int *pi,int *pk)
{
    int temp;
    temp=*pi;
    *pi=*pk;
    *pk=temp;
}
int ascending(int a,int b)
{
    return  a<b;
}
int descending(int a,int b)
{
    return  a>b;
}
搜索更多相关主题的帖子: 数据 选择 编译 
2010-12-10 17:04
xiaomarn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:348
专家分:2026
注 册:2009-3-18
收藏
得分:7 
程序代码:
#include <stdio.h>
#define N 10
void bubble(int *,int,int(*)(int,int));
void swap(int *pi,int *pk);
int ascending(int,int);
int descending(int,int);

void main()
{
    int i,order,a[]={3,7,9,11,0,6,7,5,4,2};
    printf("输入1-----升序排列\n");
    printf("输入2-----降序排列");
   

    printf("初始数据;\n");
    for(i=0;i<N;i++)
        printf("%4d",a[i]);
    printf("\n");
    scanf("%d",&order);
    if(order==1)
    {
        bubble(a,N,ascending);
        printf("\n升序排列:\n");
    }
    else
    {
        bubble(a,N,descending);
        printf("\n降序排列:\n");
    }
    for(i=0;i<N;i++)
        printf("%4d",a[i]);
    printf("\n");
}
void bubble(int *pa,int n,int(*ph) (int,int))
{
    int i,j,k;

    for(i=0;i<n-1;i++)
    {
        k=i;
        for(j=i+1;j<n;j++)
            if((*ph) (pa[j],pa[k]))
                  k=j;
        if(k!=i)
            swap(&pa[i],&pa[k]);
    }

}
void swap(int *pi,int *pk)
{
    int temp;
    temp=*pi;
    *pi=*pk;
    *pk=temp;
}
int ascending(int a,int b)
{
    return  a<b;
}
int descending(int a,int b)
{
    return  a>b;
} 
代码是你自己写的吗?学习了


[ 本帖最后由 xiaomarn 于 2010-12-10 17:50 编辑 ]
2010-12-10 17:48
fightingsss
Rank: 6Rank: 6
等 级:侠之大者
帖 子:97
专家分:471
注 册:2010-11-12
收藏
得分:7 
这。。
2010-12-12 10:18
快速回复:/*采用选择发对一组数据进行升序或排序*/怎么编译不出来啊!请高手请教 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018234 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved