| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 384 人关注过本帖
标题:用指针排列顺序问题。。
只看楼主 加入收藏
wwfdzh2012
Rank: 2
等 级:论坛游民
帖 子:88
专家分:27
注 册:2012-11-22
结帖率:94.12%
收藏
已结贴  问题点数:10 回复次数:7 
用指针排列顺序问题。。
程序代码:
#include<stdio.h>
void main()
{
    void sort(int *x,int n);
    int i,*p,a[10];
    p=a;
    printf("请输入10数字:");
    for(i=0;i<=9;i++)
        scanf("%d",p++);
    p=a;
    sort(p,10);
    for(p=a,i=0;i<=9;i++)
    {
        printf("%d ",*p);
        p++;
    }
}
void sort(int *x,int n)
{
    int i,j,k,t;
    for(i=0;i<n-1;i++)
    {
        k=i;
        for(j=i+1;j<n;j++)
        {
            if(*(x+j)>*(x+k))k=j;
            if(k!=i)
            t=*(x+i),*(x+i)=*(x+k),*(x+k)=t;
        }
    }
}
    
搜索更多相关主题的帖子: color 
2012-12-11 19:01
一个孩子
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:356
专家分:954
注 册:2012-10-1
收藏
得分:3 
排序函数出现了问题 if(k!=i),应该放在第二个循环外边。

重要的不是结果,是求一个结果的过程,哪怕千难万难,当你有想要的结果时,你已走的很远
2012-12-11 19:06
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:3 
#include<stdio.h>
void main()
{
    void sort(int *x,int n);
    int i,*p,a[10];
    p=a;
    printf("请输入10数字:");
    for(i=0;i<=9;i++)
        scanf("%d",p++);
    p=a;
    sort(p,10);
    for(p=a,i=0;i<=9;i++)
    {
        printf("%d ",*p);
        p++;
    }
}
void sort(int *x,int n)
{
    int i,j,t;
    for(i=0;i<n-1;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if(*(x+j)>*(x+i)) {
                // k=j;  
                t=*(x+i),*(x+i)=*(x+j),*(x+j)=t;
            }
        }
    }

}

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2012-12-11 19:14
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:0 
k都不是必要的,上面的代码可以了

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2012-12-11 19:15
小小战士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:569
专家分:1313
注 册:2012-11-3
收藏
得分:3 
#include<stdio.h>
void main()
{
    void sort(int *x,int n);
    int i,*p,a[10];
    p=a;
    printf("请输入10数字:");
    for(i=0;i<10;i++)
        scanf("%d",p++);
    sort(a,10);
    for(p=a,i=0;i<10;i++)
    {
        printf("%d ",*p);
        p++;
    }
    printf("\n");
}
void sort(int *x,int n)
{
    int i,j,k,t;
    for(i=0;i<n-1;i++)
    {
        for(j=i;j<n;j++)
        {
            if(*(x+i)>*(x+j))
            {
                t=*(x+i);*(x+i)=*(x+j);*(x+j)=t;
            }
        }
    }
}
测试:
图片附件: 游客没有浏览图片的权限,请 登录注册

小小战士,战士中的战斗机!
2012-12-11 19:16
wwfdzh2012
Rank: 2
等 级:论坛游民
帖 子:88
专家分:27
注 册:2012-11-22
收藏
得分:0 
回复 3楼 yuccn
这是我完全按照老谭的书写的,感觉他的书好多错误。。。
2012-12-11 22:46
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:3 
实际测试才是王道

DO IT YOURSELF !
2012-12-11 22:48
fan20121221
Rank: 1
等 级:新手上路
帖 子:17
专家分:8
注 册:2012-12-10
收藏
得分:0 
,我也要多打代码!受教!!!
2012-12-11 23:11
快速回复:用指针排列顺序问题。。
数据加载中...
 
   



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

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