| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5111 人关注过本帖
标题:用指针完成对输入三个数从大到小顺序排列请大神看看我的程序为什么运行不了 ...
只看楼主 加入收藏
f14011123
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2014-11-9
结帖率:90.91%
收藏
已结贴  问题点数:7 回复次数:9 
用指针完成对输入三个数从大到小顺序排列请大神看看我的程序为什么运行不了?
#include<stdio.h>
void main()
{
    int x,y,z;
    int *px,*py,*pz;
    printf("Input:\n");
    scanf("%d%d%d",&x,&y,&z);
    px=&x;
    py=&y;
    pz=&z;
    if(px>py>pz)
    {
        printf("*px=%d",*px);
        printf("*py=%d",*py);
        printf("*pz=%d",*pz);
    }
        
    if(py>px>pz)
    {
        printf("*py=%d",*py);
        printf("*px=%d",*px);
        printf("*pz=%d",*pz);
    }
        
    if(pz>py>px)
    {
        printf("*pz=%d",*pz);
        printf("*py=%d",*py);
        printf("*px=%d",*px);
    }
    if(px>pz>py)
    {
        printf("*px=%d",*px);
        printf("*pz=%d",*pz);
        printf("*py=%d",*py);
    }
    if(py>pz>px)
    {
        printf("*py=%d",*py);
        printf("*pz=%d",*pz);
        printf("*px=%d",*px);
    }
    if(pz>px>py)
    {
        printf("*pz=%d",*pz);
        printf("*px=%d",*px);
        printf("*py=%d",*py);
    }
}

搜索更多相关主题的帖子: include 
2014-12-05 09:33
Bccn_Billy
Rank: 2
等 级:论坛游民
帖 子:8
专家分:35
注 册:2014-11-26
收藏
得分:3 
if(px>py>pz)
修改为:if(*px>*py>*pz)
下同。。。。
另外。。。。这什么算法?还让计算机活不?
*才是取值.

Yesterday is history,tomorrow is mistery,but today is a gift.
2014-12-05 09:39
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:3 
以下是引用Bccn_Billy在2014-12-5 09:39:30的发言:

if(px>py>pz)
修改为:if(*px>*py>*pz)
下同。。。。
另外。。。。这什么算法?还让计算机活不?
*才是取值.



不要误人子弟   有X>Y>Z这种语法吗   这貌似是纯数学语法

DO IT YOURSELF !
2014-12-05 09:48
f14011123
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2014-11-9
收藏
得分:0 
回复 2 楼 Bccn_Billy
可以运行了但是没有达到目的,输出三个值但是输不出来也没从大到小的排序,我这程序是哪里出错了。太感谢了
2014-12-05 09:50
f14011123
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2014-11-9
收藏
得分:0 
回复 3 楼 wp231957
那有什么更好的方法去做呢?用数组我会做但是用指针就毫无头绪
2014-12-05 09:52
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用f14011123在2014-12-5 09:52:03的发言:

那有什么更好的方法去做呢?用数组我会做但是用指针就毫无头绪



既然你会用数组做  那就照搬好了  我只是怀疑你是否真的会用数组做

DO IT YOURSELF !
2014-12-05 09:59
f14011123
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2014-11-9
收藏
得分:0 
回复 6 楼 wp231957
    我试试吧。
2014-12-05 10:05
Bccn_Billy
Rank: 2
等 级:论坛游民
帖 子:8
专家分:35
注 册:2014-11-26
收藏
得分:0 
回复 3 楼 wp231957
脑子一下子短路了,不好意思。
if (*px<*py && *py<*pz)

Yesterday is history,tomorrow is mistery,but today is a gift.
2014-12-05 10:12
comewest
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:74
专家分:335
注 册:2014-12-3
收藏
得分:3 
用指针完成对输入三个数从大到小顺序排列,思路上跟两个数的大小比较一样。
#include<stdio.h>
void swap(int *px,int *py) //用指针实现数据交换
{int temp;
 temp=*px;  *px=*py ;   *py=temp;
}
void main()
{ int x,  y, z;
  scanf("%d%d%d",&x,&y,&z);
  if(z>x)           //第一个数和第三个数按大小排列
      swap(&x,&z);
  if(y>x)           //拿第二个数分别和第一个、第三个数比较
     swap(&x,&y);            
  else if(y<z)
       swap(&y,&z);
  printf("after swap :x=%d,y=%d,z=%d\n",x,y,z);
}
2014-12-05 10:14
comewest
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:74
专家分:335
注 册:2014-12-3
收藏
得分:0 
看到这个题我想笑。因为以前我们学C语言的时候第九章指针里面有个例题,就是用指针实现两个数的交换。估计这个老师希望学生好好看看例题就会做了,结果学生完全没领会老师的意图,根本没想到用指针实现交换哈哈……

[ 本帖最后由 comewest 于 2014-12-5 10:29 编辑 ]
2014-12-05 10:28
快速回复:用指针完成对输入三个数从大到小顺序排列请大神看看我的程序为什么运行 ...
数据加载中...
 
   



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

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