关于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如何判断的 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,判断逻辑是一样的 if(x<y)
min = x;
else
min = y;
if(min>z)
min = z; 可能你没弄懂&&运算符
它表示的是两边同时为真才为真
第一个if
如果x<y 和 x<z同时成立
就把x放到min变量中
否则就把y放到min变量中
第二个
如果 z<x 和 z<y同时成立
就把z放到min变量中
最后输出变量min就是最小的数
页:
[1]