| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 344 人关注过本帖
标题:指针做的排序
只看楼主 加入收藏
fydgo
Rank: 2
等 级:论坛游民
帖 子:57
专家分:10
注 册:2009-4-10
结帖率:73.33%
收藏
已结贴  问题点数:10 回复次数:1 
指针做的排序
#include <stdio.h>
sort(int *p,int n)
{
    int i,j,temp;
    int min;
    for(i=0;i<n-1;i++)
    {     min=i;
           for(j=i+1;j<n;j++)
           if(*(p+j)<*(p+min))
           min=j;

           temp=*(p+i);
           *(p+i)=*(p+min);
           *(p+min)*=temp;
    }

    for(i=0;i<n;i++)                          /*输出排序后的结果*/
    printf("%5d",*(p+i));
 }
main()
{
    int a[10],*p,i;
    p=a;
    printf("please enter the 10 NO.");
    for(i=0;i<10;i++)
    scanf("%d",a[i]);
    sort(p,10);
 }
哪里错了,应该怎么改?
搜索更多相关主题的帖子: 指针 
2009-10-29 09:00
玩出来的代码
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:河南新乡
等 级:贵宾
威 望:11
帖 子:742
专家分:2989
注 册:2009-10-12
收藏
得分:10 
  
#include <stdio.h>
sort(int *p,int n)
{
    int i,j,temp;
    int min,*q;
    q=p;                      //设置针保存p的地址。
    for(i=0;i<n;i++)
    {     min=i;
           for(j=i+1;j<n;j++)
           if(*(p+j)<*(p+min))
           min=j;
         if(min!=i)            //min的值变了才把p+i于p+min的值交换
         {
           temp=*(p+i);
           *(p+i)=*(p+min);
           *(p+min)=temp;
          }
}
     p=q;                    //让p在指向数组的首地址
    for(i=0;i<n;i++)                          /*输出排序后的结果*/
    printf("%5d",*(p+i));
}
main()
{
    int a[10],*p,i;
    p=a;
    printf("please enter the 10 NO.");
    for(i=0;i<10;i++)
    scanf("%d",&a[i]);          //这里你没有加&
    sort(p,10);
    getch();
}

离恨恰如春草,更行更远还生。
2009-10-29 13:04
快速回复:指针做的排序
数据加载中...
 
   



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

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