早教吧作业答案频道 -->其他-->
1、下列程序为什么无法将用户输入的三个整数按从小到大排序输出?应该如何修改?要求:描述出错原因(5分#includevoidswap(intx,inty)﹛intt;t=x;x=y;y=t;﹜main()﹛inta,b,c;scanf(“%d,%d,%d”,&
题目详情
1、下列程序为什么无法将用户输入的三个整数按从小到大排序输出?应该如何修改?要求:描述出错原因(5分
# include
void swap (int x,int y)
﹛
int t;
t = x;
x = y;
y = t;
﹜
main ()
﹛
int a,b,c;
scanf (“%d,%d,%d”,&a,&b,&c);
if (a>b) swap (a,b);
if (a>c) swap (a,c);
if (b>c) swap (b,c);
printf (“%d,%d,%d”,a,b,c);
﹜
# include
void swap (int x,int y)
﹛
int t;
t = x;
x = y;
y = t;
﹜
main ()
﹛
int a,b,c;
scanf (“%d,%d,%d”,&a,&b,&c);
if (a>b) swap (a,b);
if (a>c) swap (a,c);
if (b>c) swap (b,c);
printf (“%d,%d,%d”,a,b,c);
﹜
▼优质解答
答案和解析
用指针做:
#include "stdio.h"
void swap (int *x, int *y)
{
int t;
t = *x;
*x = *y;
*y = t;
}
main ()
{
int a,b,c;
scanf("%d,%d,%d",&a,&b,&c);
if (a>b)
swap (&a,&b);
if (a>c)
swap (&a,&c);
if (b>c)
swap (&b,&c);
printf ("%d,%d,%d",a,b,c);
}
不用指针做自定义函数中的变量会被释放,比较的只是形参大小而实参不变,所以输出地还是原先输入的.
用指针则避免了这个问题,指针指向实参,可以更改实参的内容.
#include "stdio.h"
void swap (int *x, int *y)
{
int t;
t = *x;
*x = *y;
*y = t;
}
main ()
{
int a,b,c;
scanf("%d,%d,%d",&a,&b,&c);
if (a>b)
swap (&a,&b);
if (a>c)
swap (&a,&c);
if (b>c)
swap (&b,&c);
printf ("%d,%d,%d",a,b,c);
}
不用指针做自定义函数中的变量会被释放,比较的只是形参大小而实参不变,所以输出地还是原先输入的.
用指针则避免了这个问题,指针指向实参,可以更改实参的内容.
看了1、下列程序为什么无法将用户输...的网友还看了以下:
下列定义正确的是A)chars[]={‘a’,’e’,’i’,’o’,’u’};B)chars;s 2020-06-05 …
还未回答满分1.00题干下列S不是集合X={1,2,3,4,5,6,7,8}的一个划分的是()请选 2020-06-15 …
RLC串联电路中已知R=500欧L=500mH,C=0.5微法u=16根号2*sinwtVRLC串 2020-07-01 …
数据库中σ这个符号是什么意思啊设有关系R(A,B,C)和关系S(B,C,D),那么与R⋈S等价的关 2020-07-10 …
例.如图①,平面直角坐标系xOy中有点B(2,3)和C(5,4),求△OBC的面积.解析过点B作B 2020-07-22 …
1、下列程序为什么无法将用户输入的三个整数按从小到大排序输出?应该如何修改?要求:描述出错原因(5分 2020-11-06 …
8.已知有声明"chars[80];",若需要将键盘输入的一个不含空格的字符串保存到组中,则下列语句 2020-11-07 …
看下这个C程序哪里错了,求二元一次方程的根#includevoidmain()doublet1,t2 2020-11-23 …
1.已知m^2-5m-1=0,则2m^2-5m+m^-2=?2.已知非负数a.b.c满足条件a+b= 2020-12-07 …
已知非负数a,b,c满足a+b=7,c-a=5,设S=a+b+c的最大值已知非负数a,b,c满足条件 2020-12-07 …