刚刚学C语言写代码,对输入的任意4个整数a、b、c、d,按照由大到小的顺序排序并输出,求解哪里错了

2025-03-23 04:03:51
推荐回答(3个)
回答1:

*是取内容的意思,如果你swap()括号里面的是*p1 ,那么就是取了p1地址里面的值,按照题目的意思应该是传递的地址去改变地址里面的值,所以写的是p1而不是*p1;

回答2:

集灵台二首·其二(张祜)

回答3:

#include
int main(void)
{
int a,b,c,d,temp;
printf("  请输入四个整数(数与数之间空格隔开):");
scanf("%d %d %d %d",&a,&b,&c,&d);
if(a>b)
{
temp=a;
a=b;
b=temp;
}
if(a>c)
{
temp=a;
a=c;
c=temp;
}
if(a>d)
{
temp=a;
a=d;
d=temp;
}
if(b>c)
{
temp=b;
b=c;
c=temp;
}
if(b>d)
{
temp=b;
b=d;
d=temp;
}
if(c>d)
{
temp=c;
c=d;
d=temp;
}
printf("  输入的四个整数从大到小排序:%d  %d  %d  %d\n",d,c,b,a);
return 0;
}