如果主函数如下,其中函数调用swap(a,b):要完成数据交换,请写出函数swap的定义: main(){ float a=3,b=5;

如果主函数如下,其中函数调用swap(a,b):要完成数据交换,请写出函数swap的定义:/*voidswap(int*a,int*b){t=*a;*a=*b;*b=t;... 如果主函数如下,其中函数调用swap(a,b):要完成数据交换,请写出函数swap的定义:

/*void swap(int *a,int *b)
{
t=*a;*a=*b;*b=t;
} 这么写对么*/
main(){
float a=3,b=5;
swap(&a,&b);
printf(“a=%f b=%d\n”,a,b);
}
展开
 我来答
百度网友b79519e
2011-03-22 · TA获得超过3399个赞
知道大有可为答主
回答量:1417
采纳率:100%
帮助的人:1331万
展开全部
void swap(int *a,int *b)
{
t=*a;*a=*b;*b=t;
} 这么写对么*/
main(){
float a=3,b=5;
swap(&a,&b);
printf(“a=%f b=%d\n”,a,b);
}
t未定义,swap函数中a,b应为float型指针
正确代码如下:
void swap(float*a,float *b)
{float t;
t=*a;*a=*b;*b=t;
} 这么写对么*/
main(){
float a=3,b=5;
swap(&a,&b);
printf(“a=%f b=%d\n”,a,b);
}
追问
为什么要用float类型呢 是调用参数时都要用float型么?
追答
因为主函数中a,b 是float型啊
float型的变量的地址可以送给整型的指针变量吗?很明显是不行的
所以swap的形参应该是float型的指针变量
如果是int型的,那么主函数中a,b也应该是int型的,这样进行值传递时才不会出错啊
jcw_2010
2011-03-21 · TA获得超过942个赞
知道小有建树答主
回答量:219
采纳率:100%
帮助的人:272万
展开全部
注意参数类型。
void swap(float *a, float *b)
{
t=*a;*a=*b;*b=t;
}
main(){
float a=3,b=5;
swap(&a,&b);
printf(“a=%f b=%f\n”,a,b);
}
追问
为什么要用float类型呢 是调用参数时都要用float型么?
追答
根据需要来设置类型,比如swap是用来交换两个浮点数的,得是void swap(float *a, float *b);
交换两个整数,得是void swap(int *a, int *b);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式