
C语言。用指针找出3个数的最大与最小,我错在哪里哦?求指教!
voidfilter(float*p1,float*p2,float*p3,float*m,float*n){if(*p1>*p2){m=p1;n=p2;}else{m=...
void filter(float *p1,float *p2,float *p3,float *m,float *n)
{
if(*p1>*p2)
{
m=p1;
n=p2;
}
else
{
m=p2;
n=p1;
}
if(*m<*p3)
m=p3;
if(*n>*p3)
n=p3;
} 展开
{
if(*p1>*p2)
{
m=p1;
n=p2;
}
else
{
m=p2;
n=p1;
}
if(*m<*p3)
m=p3;
if(*n>*p3)
n=p3;
} 展开
4个回答
展开全部
m=p1;
n=p2;
你的原意交换地址,按你这个函数交换内容就好了,不用那么复杂,即
*m=*p1;
*n=*p2 ,下面也一样。
按你的写法对于地址只是值的传送,值的改变无法改变形参的实际内容。
如要交换地址,参考:
void filter(float *p1,float *p2,float *p3,float **m,float **n)
需要传地址的地址,注意到两个星号没有,里面这样写。
*m=p1;
*n=p2
n=p2;
你的原意交换地址,按你这个函数交换内容就好了,不用那么复杂,即
*m=*p1;
*n=*p2 ,下面也一样。
按你的写法对于地址只是值的传送,值的改变无法改变形参的实际内容。
如要交换地址,参考:
void filter(float *p1,float *p2,float *p3,float **m,float **n)
需要传地址的地址,注意到两个星号没有,里面这样写。
*m=p1;
*n=p2
展开全部
m=p1;
n=p2
你这是把p1p2 的地址赋值给mn
*m=*p1;
*n=*p2;
应该这样吧 下面一样
n=p2
你这是把p1p2 的地址赋值给mn
*m=*p1;
*n=*p2;
应该这样吧 下面一样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
m,n的内存地址是不能改变的.
if(*p1>*p2)
{
*m=*p1;
*n=*p2;
}
else
{
*m=*p2;
*n=*p1;
}
if(*p1>*p2)
{
*m=*p1;
*n=*p2;
}
else
{
*m=*p2;
*n=*p1;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
m n没定义
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询