C语言 基础高手请帮帮忙 改错

来源:百度知道 编辑:UC知道 时间:2024/09/14 12:59:13
(1)。以下程序功能是输入a和b两个整数,按先大后小顺序输出a和b,请改正函数中的错误语句。
swap(int*p1,int*p2)
{ int*p;
p=p1;
p1=p2;
p2=p;
}
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",*pointer_1,*pointer_2);
}

#include "stdio.h"
void swap(int *p1,int *p2)
{ int p;
p=*p1;
*p1=*p2;
*p2=p;

}
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",*pointer_1,*pointer_2);
}
else
printf("%d,%d\n",*pointer_1,*pointer_2);
}
这个正确,我试过了。
scanf这你有一个错误,多了一个逗号, 还有就是定义函数那里的指针注意,写这么麻烦的程序干嘛,指针可不能乱用。

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

〉〉指针地址交换不起作用的:
swap(int*p1,int*p2)
{ int*p;
*p=*p1;
*p1=*p2;
*p2=*p;
}

改法一:swap(int *p1,int *p2)
{ int p;
p=*p1;
*p1=*p2;
*p2=p;
}
改法二:main()
{int a,b;
int *pointer_1,*pointer_2;