yu457001 发表于 2014-1-22 14:12:44

大神们帮我看看,为什么我的排序函数不干活儿呢?

//输入三个数,并用指针变量函数来完成排序功能
//从小到大顺序输出
#include<stdio.h>
int paixu(int *p1,int *p2,int *p3);
int main()
{
      int a,b,c;
      int *p_1,*p_2,*p_3;

      p_1=&a;
      p_2=&b;
      p_3=&c;

      scanf("%d%d%d",&a,&b,&c);
      paixu(p_1,p_2,p_3);
      printf("%d<%d<%d\n",a,b,c);
}

int paixu(int *p1,int *p2,int *p3)
{

      int *p;
      printf("让我猜------");
      if(p1>p2)//这里开始就不干活了。
      {
            p=p1;
            p1=p2;
            p2=p;
      }
      if(p2>p3)
      {
            p=p2;
            p2=p3;
            p3=p;
      }
      return 0;
}

牛头的主人 发表于 2014-1-22 14:41:27

你用地址相比较?这又不是数组,前面加个*号吧

牡丹花下死做鬼 发表于 2014-1-22 14:47:33

你 比较地址干嘛????

谭斌谭斌 发表于 2014-1-22 22:56:43

写代码注意格式

#include<stdio.h>

void paixu(int *p1,int *p2,int *p3);

int main()
{
      int a,b,c;
      int *p_1,*p_2,*p_3;

      p_1=&a;
      p_2=&b;
      p_3=&c;

      scanf("%d%d%d",&a,&b,&c);
      paixu( p_1 , p_2 , p_3 );
      printf("%d<%d<%d\n",a,b,c);
         
          return 1;
}

void paixu(int *p1,int *p2,int *p3)
{

    int p;
    if( *p1 > *p2 )
    {
                p = *p1;
                *p1 = *p2;
                *p2 = p;
    }
      
    if( p2 > p3 )
    {
                p = *p2;
                *p2 = *p3;
                *p3 = p;
    }

}

yu457001 发表于 2014-1-23 10:24:38

{:1_1:}谢谢各位,总算是开始给我干活了。呵呵,才接触指针和指针变量,有点晕

livermorer 发表于 2014-1-25 01:51:35

yu457001 发表于 2014-1-25 10:33:26

livermorer 发表于 2014-1-25 01:51 static/image/common/back.gif
你用指针地址比较啥啊?

可能是没看懂教程,也是练习的少吧,真的有点迷迷糊糊的
页: [1]
查看完整版本: 大神们帮我看看,为什么我的排序函数不干活儿呢?