丰色丶 发表于 2022-1-10 02:07:11

关于if else 在加if的判定问题

本帖最后由 丰色丶 于 2022-1-10 02:15 编辑

题目如下:
                输入三个整数,输出三个数中的最小数,要求填空:
                                                                int x,y,z min;
                                                                scanf("%d%d%d",x,y,z);
                                                                if(填空区域)         min = x;
                                                                else                        min = y;
                                                                if(填空区域)        min = z;
                                                                printf("%d\n",min);
我填第一空为 x<y && x<z
第二空为 z<x && z<y
得到的答案为正常的但是不明白ifelse如何判断的

大马强 发表于 2022-1-10 08:11:13

1、假设x是最小的,那么他就满足第一个if 语句,将其赋值给min = x
2、如果x不是最小的,那么最小的就在y z当中,本题就是假设是y最小 min = y
3、如果y是最小,那么下一个if就不会执行, 直接输出,但如果z比y还小,那么min =z

第二步你可以假设是z是最小的,那么下面if语句就要改成 y<x && y<z,判断逻辑是一样的

jhq999 发表于 2022-1-10 12:53:15

if(x<y)      
             min = x;
                                                               
else                     
             min = y;
                                                               
if(min>z)      
      min = z;

qinzilong 发表于 2022-1-10 19:45:25

可能你没弄懂&&运算符
它表示的是两边同时为真才为真
第一个if
如果x<y 和 x<z同时成立
就把x放到min变量中
否则就把y放到min变量中
第二个
如果 z<x 和 z<y同时成立
就把z放到min变量中
最后输出变量min就是最小的数
页: [1]
查看完整版本: 关于if else 在加if的判定问题