比大小问题里,说是大小中和全等的测试点错误,但是不知道要怎么完善
a>b&&b<c的没有判断,还有 a==b && b==c的也没有判断 按照排列组合最少有9种以上
不过不建议这么写if,很容易漏掉情况,可以这样
max mid min
if(a>=b) {
max=a; mid=b;
} else {
max = b; mid = a;
}
if(c>=max) {max=c, min=mid, mid=max}
else {
if(c>=mid) {
min = mid; mid = c;
} else {
min = c;
}
}
在输出 max mid min
#include<stdio.h>
int main()
{
int x,y,z,min;
scanf("%d %d %d",&x,&y,&z);
//将x位置存放xy中最小的那个
if(x>y)
{
min = x;
x = y;
y = min;
}
//将x位置存放xz中最小的那个
if(x>z)
{
min = x;
x = z;
z = min;
}
//经过以上两步,x位置已经是三个数中最小的了,现在仅需将yz中小的那个放到y位置即可
if(y>z)
{
min = y;
y = z;
z = min;
}
printf("%d->%d->%d",x,y,z);
return 0;
}
//如果第一个if判断不成立,则直接进行下面x与z的比较
//如果二个if判断仍不成立,则直接进行下面y与z的比较
//如果三个if判断仍不成立,则直接输出
第八行打印顺序错了,应该是b c a
int main()
{
int num1, num2, num3;
scanf("%d %d %d", &num1, &num2, &num3);
int temp;
if (num1 > num2)
{
temp = num1;
num1 = num2;
num2 = temp;
}
if (num1 > num3)
{
temp = num1;
num1 = num3;
num3 = temp;
}
if (num2 > num3)
{
temp = num2;
num2 = num3;
num3 = temp;
}
printf("%d->%d->%d", num1, num2, num3);
return 0;
}