标题:指针不懂 请教
只看楼主
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
结帖率:100%
已结贴  问题点数:10 回复次数:7 
指针不懂 请教
/*对三个输入的数进行排序并按从小到大顺序排列*/


#include <stdio.h>
main()
{
    void arrange(int *h,int *j,int *k);                        /*函数的首部对三个数进行输入*/
    int a,b,c,*x,*y,*z;
    printf("请输入要排序的三个数");
    scanf("%d,%d,%d",&a,&b,&c);
    x=&a;
    y=&b;
    z=&c;

    arrange(x,y,z);                                       /*调用函数*/
    printf("%3d%3d%3d",a,b,c);
}

/*定义函数对三个数进行排序*/
void   arrange(int *h,int *j,int *k)
{
    int *t;
    if(*h>*j)
    {
       *t=*h;
       *h=*j;
       *j=*t;
    }
else if(*h>*k)
{
    *t=*h;
    *h=*k;
    *k=*t;
}
else if(*j>*k)
{
    *t=*j;
    *j=*k;
    *k=*t;
}

}

好久 没请教各位大虾问题了  今天 这个指针不懂 请教啊
搜索更多相关主题的帖子: include 无敌 
2011-05-16 06:28
键盘农夫
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:88
专家分:106
注 册:2011-5-5
得分:4 
void   arrange()中
int *t;
这个错
arrange()的逻辑也有问题

《狂人C:程序员入门必备》
2011-05-16 06:34
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
得分:4 
int t;
    if(*h>*j)
    {
       t=*h;
       *h=*j;
       *j=t;
    }
if(*h>*k)  //无else
{
    t=*h;
    *h=*k;
    *k=t;
}
if(*j>*k) //无else
{
    t=*j;
    *j=*k;
    *k=t;
}
2011-05-16 06:36
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
得分:2 
楼上正解  只用if 如果用else if

逻辑错误

                                         
===========深入<----------------->浅出============
2011-05-16 09:51
烟雾中的迷茫
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:621
专家分:1069
注 册:2011-2-9
得分:0 
为什么逻辑错误 能解释下吗
2011-05-16 12:52
一纸空白zj
Rank: 1
等 级:新手上路
帖 子:18
专家分:5
注 册:2010-12-14
得分:0 
同楼上问
2011-05-16 15:13
Sub_Yafei
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-5-16
得分:0 
程序代码:
#include <stdio.h>
main()
{
    void arrange(int *h,int *j,int *k);                        /*函数的首部对三个数进行输入*/
    int a,b,c;
    //,*x,*y,*z;
    printf("请输入要排序的三个数");
    scanf("%d%d%d",&a,&b,&c);
   // x=&a;
    //y=&b;
    //z=&c;

    arrange(&a,&b,&c);                                       /*调用函数*/
    printf("%3d%3d%3d",a,b,c);
    while(1);
}

/*定义函数对三个数进行排序*/
void   arrange(int *h,int *j,int *k)
{
    int t;
    if(*h>*j)
    {
       t=*h;
       *h=*j;
       *j=t;
    }
else if(*h>*k)
{
    t=*h;
    *h=*k;
    *k=t;
}
else if(*j>*k)
{
    t=*j;
    *j=*k;
    *k=t;
}

}
2011-05-16 20:19
Sub_Yafei
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-5-16
得分:0 
楼主 改成上面的编码 编译通过了
2011-05-16 20:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-340012-1-1.html




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

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