C语言编程题,输入3个整数,由小到大输出,用指针变量

2024-11-19 23:33:24
推荐回答(4个)
回答1:

#include
int main(void)
{
int *a1,*b1,*c1,a,b,c;
a1=&a;
b1=&b;
c1=&c;
scanf("%d%d%d",a1,b1,c1);
if(*a1>*b1)
{
*a1=*a1^*b1;
*b1=*a1^*b1;
*a1=*a1^*b1;
}
if(*a1>*c1)
{
*a1=*a1^*c1;
*c1=*a1^*c1;
*a1=*a1^*c1;
}
if(*b1>*c1)
{
*b1=*b1^*c1;
*c1=*b1^*c1;
*b1=*b1^*c1;
}
printf("%d,%d,%d",*a1,*b1,*c1);
return(0);
}

回答2:

#include
void main()
{
void swap(int *p1,int *p2);/*交换函数的申明*/

int *a1 , *b1 , *c1 , a , b , c ;

a1 = &a;

b1 = &b;

c1 = &c;

scanf("%d%d%d",a1,b1,c1);/*输入三个整数赋给a,b,c,*/

if(*a1 > *b1)

swap( a1,b1);

if(*a1 > *c1)

swap( a1,c1);

if(*b1 > *c1)

swap( b1,c1);

printf("%d,%d,%d",*a1,*b1,*c1);

}

void swap(int * p1,int * p2)
{
*p1 = *p1^*p2;/*语句中的^为C语言按位异或运算*/

*p2 = *p2^*p1;

*p1 = *p1^*p2;

}

/*经过三次交换后,a1,b1,c1还是指向a , b ,c,但是a,b,c中的数值变了*/

回答3:

给你个交换函数
void swap(int *p1,int *p2)
{
int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}
其他的自己写

回答4:

#include//这个就是一个树分解的问题
int main()
{
int a,b,c,*p1,*p2,*p3;
scanf("%d%d%d",&a,&b,&c);
p1=&a;
p2=&b;
p3=&c;
if(*p1<*p2 && *p1<*p3)
{
printf("%d ",*p1);
if(*p2<*p3)
printf("%d %d\n",*p2,*p3);
else
printf("%d %d\n",*p3,*p2);
}
else
{
if(*p2<*p3 && *p2<*p1)
{
printf("%d ",*p2);
if(*p1<*p3)
printf("%d %d\n",*p1,*p3);
else
printf("%d %d\n",*p3,*p1);
}
else
{
printf("%d ",*p3);
if(*p1<*p2)
printf("%d %d\n",*p1,*p2);
else
printf("%d %d\n",*p2,*p1);
}
}
return 0;
}