鱼C论坛

 找回密码
 立即注册
查看: 2330|回复: 5

程序要求:随机输入三个数后,按从大到小顺序输出。 为什么我这个程序没有报错,却...

[复制链接]
发表于 2019-10-30 09:55:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>

int main()
{
        void exchange(int *p1,int *p2,int *p3);
        int a,b,c,*pointer1,*pointer2,*pointer3;

        pointer1 = &a;
        pointer2 = &b;
        pointer3 = &c;

        printf("Please input three numbers :");
        scanf("%d,%d,%d",&a,&b,&c);

        exchange(pointer1,pointer2,pointer3);
        printf("%d > %d > %d\n",&a,&b,&c);
}

void exchange(int *p1,int *p2,int *p3)
{
        void swap(int *pp1,int *pp2);

        if(*p1 < *p2)
        {
                swap(p1,p2);
        }
        if(*p1 < *p3)
        {
                swap(p1,p3);
        }
        if(*p2 < *p3)
        {
                swap(p2,p3);
        }
}

void swap(int *pp1,int *pp2)
{
        int *temp;
        temp = pp1;
        pp1 = pp2;
        pp2 = pp1;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-10-30 09:56:42 | 显示全部楼层
请各位大佬指教!谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-30 10:33:04 From FishC Mobile | 显示全部楼层
本帖最后由 bin554385863 于 2019-10-30 10:51 编辑

printf("%d > %d > %d\n",&a,&b,&c);//这里应该是printf("%d > %d > %d\n",a,b,c)或者printf("%d > %d > %d\n",*pointer1,*pointer2,*pointer3);

void swap(int *pp1,int *pp2)
{
        int *temp;
        temp = pp1;
        pp1 = pp2;
        pp2 = pp1;//这里应该是pp2 = temp。
}
void exchange(int *p1,int *p2,int *p3)
这个函数可以直接传入用&取变量地址,不用专门再定义指向变量的指针
如:
void exchange(&a,&b,&c)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-30 10:51:26 | 显示全部楼层
本帖最后由 jackz007 于 2019-10-30 10:55 编辑
#include <stdio.h>

void swap(int * p1 , int * p2)
{
        int temp    ;
        temp = * p1 ;
        * p1 = * p2 ;
        * p2 = temp ;
}

void exchange(int * p1 , int * p2 , int * p3)
{
        if(* p1 < * p2) swap(p1 , p2) ;
        if(* p1 < * p3) swap(p1 , p3) ;
        if(* p2 < * p3) swap(p2 , p3) ;
}

int main()
{
        int a , b , c                           ;
        printf("Please input three numbers : ") ;
        scanf("%d%d%d" , & a , & b , & c)       ; // 三个数之间用空格隔开就可以了
        exchange(& a , & b , & c)               ;
        printf("%d > %d > %d\n", a , b , c)     ;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-30 14:22:52 | 显示全部楼层
bin554385863 发表于 2019-10-30 10:33
printf("%d > %d > %d\n",&a,&b,&c);//这里应该是printf("%d > %d > %d\n",a,b,c)或者printf("%d > %d > %d ...

好的,谢谢您!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-30 14:23:38 | 显示全部楼层

好的,谢谢您!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-4 17:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表