关于if else 在加if的判定问题
题目如下:输入三个整数,输出三个数中的最小数,要求填空:
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如何判断的
可能你没弄懂&&运算符
它表示的是两边同时为真才为真
第一个if
如果x<y 和 x<z同时成立
就把x放到min变量中
否则就把y放到min变量中
第二个if
如果 z<x 和 z<y同时成立
就把z放到min变量中
最后输出变量min就是最小的数
一般不这么填 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是最小的则,min=x
else是如果x不是最小的则,min=y
最后一个if是判断z是不是最小的,如果是则,min=z
首先判断第一个if,当第一个为真,min=x否则执行min=y,然后判断第二个if,第二个为真执行min=z,否则min=x或者min=y。 你输入3个数
第一种情况:if先判断x小于y和z
第二种情况:else再判断z小于x和y
第三种情况:如果前面两种不成立就只有y最小了
可以这样写:
#include <stdio.h>
int main()
{
int x,y,z,min;
scanf("%d %d %d",x,y,z);
if(x < y && x <z)
{min = x;}
else if(z < x && z < y)
{min = y;}
else()
{min= z;}
printf("%d\n",min);
return 0;
} 你好
if else 是满足if里面的条件则取if后面的结果否则取else后面的结果
首先在第一个填空区域if后面的结果的min=x,那肯定得y和z都大于x才能满足x为最小
跟else后面的结果没有关系的,不用根据else后面结果来判断条件
第二个填空区域同理 qinzilong 发表于 2022-1-10 19:51
可能你没弄懂&&运算符
它表示的是两边同时为真才为真
第一个if
是我钻牛角尖了我本来想的是else那边为什么是min=y你一解释我就懂了,原来是否则我就把min=y 和z没关系
谢谢!!
页:
[1]