| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 278 人关注过本帖
标题:【求助】C语言用指针进行排序题
只看楼主 加入收藏
zhangleitao
Rank: 2
等 级:论坛游民
帖 子:13
专家分:15
注 册:2011-2-24
收藏
 问题点数:0 回复次数:1 
【求助】C语言用指针进行排序题
#include<stdio.h>
int fun(int *h,int *k,int m)
{
    int l,temp;
    for(l=1;l<m;l++)
        for(;h<=k;h++)
            if(*h>*k)
            {
                temp=*h;
        *h=*k;
        *k=temp;
        }
        return 0;
       }
void main()
{
    int *q,*r,*p,a[10];
    int n,i,j;
    printf("请输入十个数:");
    for (p=a;p<a+10;p++)
        scanf("%d",p);
    printf("请输入从第几个数开始排列:");
    scanf("%d",&i);
    printf("从第%d个数以后的几个数进行逆序排列:",i);
    scanf("%d",&n);
    q=&a[i];
    r=&a[n];
    fun(q,r,n);
    printf("排序结果为:");
    for(j=0;j<10;j++)
    printf("%3d",a[j]);
}
图片中是显示的结果。不知道哪里错了。
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: include return C语言 
2011-05-09 08:53
liangjinchao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:376
专家分:697
注 册:2010-11-8
收藏
得分:0 
程序代码:
#include<stdio.h>
void fun(int *h,int i,int n)  //数组名和起止下标作参数即可
{
    int l,c,temp;
    for(l=i-1;l<n+2;l++)      //这里关键是数组下标的问题,注意:数组下标是从0开始的!!
        for(c=l+1;c<n+2;c++)
        {
            if(*(h+c)>*(h+l))
            {
                temp=*(h+l);
        *(h+l)=*(h+c);
        *(h+c)=temp;
        }
        }
       }
void main()
{
    int *p,a[10];
    int n,i,j;
    printf("请输入十个数:");
    for (p=a;p<a+10;p++)
        scanf("%d",p);
    printf("请输入从第几个数开始排列:");
    scanf("%d",&i);
    printf("从第%d个数以后的几个数进行逆序排列:",i);
    scanf("%d",&n);
    fun(a,i,n);
    printf("排序结果为:");
    for(j=i-1;j<n+i-1;j++)     //这里我改了下,只是方便我调试而已,你可以改回输出10个数!
    printf("%3d",a[j]);
}


图片附件: 游客没有浏览图片的权限,请 登录注册

因为有了因为,所以有了所以,既然已成既然,何必再说何必
2011-05-09 09:43
快速回复:【求助】C语言用指针进行排序题
数据加载中...
 
   



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

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