YLXASRX 发表于 2019-8-21 23:41:43

大佬好!我输入三个数打出的最大值和最小值都是一样的!!!我觉得我没有错啊》

#include <stdio.h>
void main()
{
        int a,b,c,max,min;
        printf("please input three numbers:\n");
        scanf("%d%d%d",&a,&b,&c);
        if (a>b)
        {
                max=a,min=b;
        }
        else
        {
                max=b,min=a;
        }
        if (max<c)
        {
                max=c;
        }
        else if(min>c);
        {
                min=c;
        }
        printf("max=%d\nmin=%d",max,min);
}

灰色的天空 发表于 2019-8-22 00:09:13

else if(min>c);最后这个分号去掉

jackz007 发表于 2019-8-22 00:11:36

本帖最后由 jackz007 于 2019-8-22 00:13 编辑

      这一句有问题:      else if(min>c);/* 这句末尾的分号必须去掉 */

      {
                min=c;
      }

      由于这个分号的存在,将导致 min 的值注定等于 c。

#include <stdio.h>

main(void)
{
      int a , b , c , max , min                ;
      printf("please input three numbers:\n");
      scanf("%d%d%d" , & a , & b , & c )       ;
      if (a > b) max = a , min = b             ;
      else max = b , min = a                   ;
      if(max < c) max = c                      ;
      if(min > c) min = c                      ;
      printf("max = %d\nmin = %d" , max , min) ;
}

    也可以考虑采用三目运算符:
#include <stdio.h>
main(void)
{
      int a , b , c , max , min                  ;
      printf("please input three numbers:\n")    ;
      scanf("%d%d%d", & a , & b , & c)         ;
      max = a > b ? a : b                        ;
      max = c > max ? c : max                  ;
      min = a < b ? a : b                        ;
      min = c < min ? c : min                  ;
      printf("max = %d\nmin = %d\n" , max , min) ;
}
页: [1]
查看完整版本: 大佬好!我输入三个数打出的最大值和最小值都是一样的!!!我觉得我没有错啊》