| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1609 人关注过本帖
标题:一个用指针给三个数排序的问题
只看楼主 加入收藏
苏啊婷
Rank: 1
等 级:新手上路
帖 子:10
专家分:8
注 册:2015-12-9
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
一个用指针给三个数排序的问题
#include<stdio.h>
void f1(int *p1,int *p2)  
{  
    int temp;   
    temp=*p1;   
    *p1=*p2;  
    *p2=temp;  
}  
void f2(int *p1,int *p2,int *p3)  
{   
    if(*p1<*p2) f1(p1,p2);  
    if(*p1<*p3) f1(p1,p3);  
    if(*p2<*p3) f1(p2,p3);        
}
main()
{
int a,b,c;
int*p1,*p2,*p3;
scanf("%d %d %d",&a,&b,&c);
p1=&a;p2=&b;p3=&c;
f2(p1,p2,p3);
printf("%d %d %d",p1,p2,p3);
}




程序可以运行,但是答案是错误的。
2015-12-22 19:34
ms268el8
Rank: 4
等 级:业余侠客
威 望:1
帖 子:84
专家分:299
注 册:2015-11-30
收藏
得分:20 
printf("%d %d %d", *p1, *p2, *p3);
p1代表輸出p1內容,也就是p1指標指向的記憶體位址,也就是a的記憶體位址
*p1代表輸出p1指標指向的記憶體位址的內容,也就是a的內容

[此贴子已经被作者于2015-12-22 20:48编辑过]

2015-12-22 20:38
jiaka008
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-1-7
收藏
得分:0 
#include<stdio.h>
void f1(int *p1,int *p2)  
{  
    int temp;   
    temp=*p1;   
    *p1=*p2;  
    *p2=temp;  
}  
void f2(int *p1,int *p2,int *p3)  
{   
    if(*p1<*p2) f1(p1,p2);  
    if(*p1<*p3) f1(p1,p3);  
    if(*p2<*p3) f1(p2,p3);        
}
main()
{
int a,b,c;
int*p1,*p2,*p3;
printf("请输入三个数字:\n");
scanf("%d,%d,%d",&a,&b,&c);
p1=&a;p2=&b;p3=&c;
f2(p1,p2,p3);
printf("%d %d %d",*p1,*p2,*p3);
}

楼主输入数字时,每输入一个就按一下回车键,结果就对了
2016-01-12 10:28
快速回复:一个用指针给三个数排序的问题
数据加载中...
 
   



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

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