程序要求:随机输入三个数后,按从大到小顺序输出。 为什么我这个程序没有报错,却...
#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;
} 请各位大佬指教!谢谢! 本帖最后由 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) 本帖最后由 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) ;
} 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 ...
好的,谢谢您! jackz007 发表于 2019-10-30 10:51
好的,谢谢您!
页:
[1]