中易网

为什么我用指针比较两个数大小这个出来的结果第二个会不一样呢?

答案:4  悬赏:30  
解决时间 2021-03-22 14:38
#include
int main()
{ void swap (int *p1,int *p2);
int a,b;
int*pointer_1,*pointer_2;
printf("please enter a and b:");
scanf("%d,%d",&a,&b);
pointer_1=&a;
pointer_2=&b;
if(a printf("Output:\nmax=%d,min=%d\n",a,b);
return 0;
}
void swap (int *p1,int *p2)
{
int temp;
*p1=temp;
*p1=*p2;
*p2=temp;
}
最佳答案
void swap (int *p1,int *p2)
{
    int temp;
    temp = *p1;
    *p1 = *p2;
    *p2 = temp;
}
全部回答
void swap (int *p1,int *p2) { int temp; temp=*p1; *p1=*p2; *p2=temp; }交换函数写错了

你只交换了地址,并没有交换地址指向的值。当然相当于什么也没做。改成

int q;  if(*i>*j)  {q=*i;*i=*j;*j=q;}  if(*j>*p)  {q=*j;*j=*p;*p=q;}  if(*i>*j)  {q=*i;*i=*j;*j=q;}

或者在c++中可以传递引用。

两个小问题,看注释 #include void swap (int *p1,int *p2); int main() { int a,b; int*pointer_1,*pointer_2; printf("please enter a and b:"); scanf("%d,%d",&a,&b); // 注意这里输入必须是两个数之间输入逗号,如:3,4 pointer_1=&a; pointer_2=&b; if(a
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯