C语言的函数调用问题

来源:百度知道 编辑:UC知道 时间:2024/06/28 11:53:15
#include <stdio.h>
swap( int *p1, int *p2 )
{
int *p;
p = p1;
p1 = p2;
p2 = p;
return *p1,*p2;
}
main()
{
int a, b;
int *pointer_1, *pointer_2;
scanf( "%d, %d", &a, &b );
pointer_1 = &a; pointer_2 = &b;
if( a<b )
swap( pointer_1, pointer_2 );
printf( "\n%d,%d\n", swap() );//在这里打印出swap的处理结果
}

我的程序写的不对,请大家帮忙改下,注意只能改printf或swap()函数里的东西,其他不要动
程序没测试请不要发出来,
现在你们可以自己随便修改程序,然后发上来,我测试一下

return 只能返回一个值:一个数值或一个指针值。
return *p1,*p2; 完全可以,语法正确,因为它返回的是一个表达式的值。这里是“逗号表达式”:
如果要同时返时两个,我也认为要修改主函数。用数组来返回值。

//return *p1,*p2;
删掉

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

return *p1,*p2; 返回了两个?
不改main函数,我还真不知道该怎么改了。。。同求高手解答