比大小问题里的部分测试点不会

img

img

比大小问题里,说是大小中和全等的测试点错误,但是不知道要怎么完善

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;
}