三个数进行排序
#include <stdio.h>
int main()
{
float a, b, c;
scanf("%f %f %f",&a,&b,&c);
float ;
if(a>b)
{
if(b>c)
{
}
else
{
if(a>c)
else
}
}
else
{
if(a>c)
else
{
if(b>c)
}
}
return 0;
}
六种情况都列举出来,但不知如何表示出来
#include <stdio.h>
int main()
{
float a, b, c;
scanf("%f %f %f",&a,&b,&c);
float t,s;
if(a>b)
{
if(b>c)
{
; //a,b,c
}
else //a,b c,b
{
if(a>c) //a,c,b
{
t=c;
c=b;
b=t;
}
else //c,a,b
{
t=a;
a=c;
c=t;
s=c;
c=b;
b=s;
}
}
}
else
{
if(a>c) //b,a,c
{
t=a;
a=b;
b=t;
}
else //b,a c,a
{
if(b>c)
{
t=a; //b,c,a
a=b;
b=t;
s=b;
b=c;
c=s;
}
else
{ //c,b,a
t=a;
a=c;
c=t;
}
}
}
printf("%f %f %f",a,b,c);
return 0;
}
最后结果表示有些问题
简化版本
使用如上法, 输出a,b,c, 互相通过比较大小交换值
#include <stdio.h>
int main()
{
double a, b, c;
scanf("%lf %lf %lf",&a,&b,&c);
double temp;
if(a<b)
{
temp = a;
a = b;
b = temp;
}
if(a<c)
{
temp = a;
a = c;
c = temp;
}
if(b<c)
{
temp = b;
b = c;
c = temp;
}
printf("%.2lf %.2lf %.2lf",a,b,c);
return 0;
}
从大到小排序见上
从小到大排序
#include <stdio.h>
// 交换两个整数的函数
void swap(int *x, int *y) {
int temp = *x;
*x = *y;
*y = temp;
}
int main() {
int a, b, c;
// 输入三个整数
printf("请输入三个整数(以空格分隔): ");
scanf("%d %d %d", &a, &b, &c);
// 第一步:确保a是三者中的最小值
if (a > b) {
swap(&a, &b);
}
if (a > c) {
swap(&a, &c);
}
// 第二步:确保b是剩余两数中的较小者
if (b > c) {
swap(&b, &c);
}
// 输出结果
printf("从小到大排列结果: %d %d %d\n", a, b, c);
return 0;
}
#include <stdio.h>
int main()
{
int a,b,c;
int 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",a,b,c);
}
注意上文如何交换
查看4道真题和解析
