C语言程序设计 如何编写将三个数从小到大的程序?
发布网友
发布时间:2022-05-26 13:42
我来回答
共4个回答
热心网友
时间:2023-10-20 02:11
#include<stdio.h>
int main()
{
float a,b,c,t;
printf("请输入三个数(用逗号隔开):");
scanf("%f,%f,%f",&a,&b,&c);
if(a>b)
{t=a;a=b;b=t;}//借助t,实现a和b的互换,互换后,a小于或等于b
if(a>c)
{t=a;a=c;c=t;}//借助t,实现a和c的互换,互换后,a小于或等于c
if(b>c)
{t=b;b=c;c=t;}//借助t,实现a和b的互换,互换后,b小于或等于c
printf("从小到大:%5.2f,%5.2f,%5.2f\n",a,b,c);
return 0;
}
程序分析:在经过第一次互换后,a<=b,经过第二次互换后a<=c,这样a已是三者中最小的,但是b和c谁大还没解决,还需进行比较和互换。经过第三次互换后,a<=b<=c。此时,a,b,c3个变量已按由小到大顺序排列。顺序输出a,b,c的值即实现由小到大输出三个数。
注:在c语言中“&”是地址符,&a的含义是“变量a的地址”。执行scanf函数,从键盘读入数,送到变量a的地址处,然后把这个数赋给变量a。
热心网友
时间:2023-10-20 02:11
1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,
然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。
2.程序源代码:
main()
{
int x,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if (x>y)
{t=x;x=y;y=t;} /*交换x,y的值*/
if(x>z)
{t=z;z=x;x=t;}/*交换x,z的值*/
if(y>z)
{t=y;y=z;z=t;}/*交换z,y的值*/
printf("small to big: %d %d%d\n",x,y,z);
}
热心网友
时间:2023-10-20 02:12
#include "stdio.h"
main()
{
int a=1,b=2,c=3;
printf("%d\n",c>=(a>=b?a:b)?c:(a>=b?a:b));
}
热心网友
时间:2023-10-20 02:12
#include<stdio.h>
int main()
{
int a,b,c,t;
scanf("%d,%d,%d",&a,&b,&c);
if(a>b){t=a;a=b;b=t;}
if(a>c){t=a;a=c;c=t;}
if(b>c){t=b;b=c;c=t;}
printf("%d,%d,%d\n",a,b,c);
return 0;
}追问为什么用&a,而不直接用a
追答&为地址符。&a表示变量a在内存中的地址。scanf是表示输入一个东西送到地址为&a的存储单元,也就是赋值给变量a。