下面介绍新的运算符,逻辑运算符&& || ! 如果 if(age>18) { if(age<30) { printf("你已成年且未奔三"); } } 这个语句是说只要年龄在大于18小于30 就打印语句 但是这样写不太直观,并且逻辑变的有点复杂 但我们用&&逻辑运算符就会使程序更清晰 如if(age>18&&age<30) 意思是如果age大于18且小于30 && 是与的意思,意味着它两边的条件必须同时为真,一边为假,它就不起作用 如果age=31 age>18的条件他满足,但age<30的条件他不满足,所以语句不会运行 还有一个|| 这是或的意思 if(age>18||age<30) 意思是如果age大于18或者小于30 || 只要两边一个为真(两个一起为真也可),它就会运行 如果age=17 age>18他不满足但age<30他满足,所以这条语句会运行 最后一个! 这是非的意思 if(age!=18) 这样也可以if(!(age==18)) 意思是如果age不等于18,它就会运行,反之如果等于18,就不运行 if(!(age<18)) 与下面语句完全相同 if(age>=18) if(a==0) 只有当a为0才为真 你也可以像这样写 if(!a) 这种方法值限制于0或者1 !会使程序变的有点混乱,即使用了!可能会减少一点输入,但是清楚的代码比需要技巧的代码好,所以用if(a==0)可能会更好,尽管用!或许会节省几微秒的时间 优先级问题 if(age=18|| age>18&&age<30) ||的优先级比&&的低 你可以这样理解 if(age=18|| (age>18&&age<30)) 与或非 的真假关系其实高中数学就学过了,在C语言中我想并不难理解 下面这个程序应该很容易理解吧 #include main() { int age; printf("请输入你的年龄:\n"); scanf("%d",&age); if(age!=18) { if(age<18&&age>0) { printf("你未成年\n"); } else if(age>18||age<100) { printf("你成年了\n"); } }else { printf("你正好18\n"); } } 下面来个题目 输入3个数,比较3个数的大小(从大到小) 这题该怎么入手?首先你先想一想,这题比前面的题目有一定的难度 首先肯定是定义3个变量 a,b,c 关键是怎么用逻辑来表示出来 if(a>b>c) 这是不行的,这个语句有两个条件,相当于if(a>b,b>c) 就是if(a>b||b>c) 我们肯定不需要用||或的逻辑运算符,而且我们在输入数字的时候不可能正好满足a>b>c的条件 那么我们输入数字有几种可能? 一种是a>b a>c b>c(这个就是a>b>c) 或a>b a>c c>b 二种是b>a,b>c,a>c或b>a,b>c,c>a 三种是c>a,c>b,a>b或c>a,c>b,b>a 这个可能有点让你晕,我们不妨先找出3个数的最大和最小数 定义两变量 最大数max 最小数min a>b a>c b>c max=a min=c a>b a>c c>b max=a min=b b>a,b>c,a>c max=b min=c b>a,b>c,c>a max=b min=a c>a,c>b,a>b max=c min=b c>a,c>b,b>a max=c min=a 一共六种情况 下面程序为 #include main() { int a,b,c,max,min; printf("请输入三个数字\n"); scanf("%d%d%d",&a,&b,&c); if(a>b&&a>c&&b>c) { max=a; min=c; } else if(a>b&&a>c&&c>b) { max=a; min=b; } else if(b>a&&b>c&&a>c) { max=b; min=c; } else if(b>a&&b>c&&c>a) { max=b; min=a; } else if(c>a&&c>b&&b>a) { max=c; min=a; } else if(c>a&&c>b&&a>b) { max=c; min=b; } printf("max=%d min=%d\n",max,min); } 这下知道该怎么入手了吧,知道最大最小数,剩下那个就是中间数 我们只要加上这个中间数就好了 所以最终程序这样 #include main() { int a,b,c,max,min,between; printf("请输入三个数字\n"); scanf("%d%d%d",&a,&b,&c); printf("比较3个数的大小\n"); if(a>b&&a>c&&b>c) { max=a; min=c; between=b; } else if(a>b&&a>c&&c>b) { max=a; min=b; between=c; } else if(b>a&&b>c&&a>c) { max=b; min=c; between=a; } else if(b>a&&b>c&&c>a) { max=b; min=a; between=c; } else if(c>a&&c>b&&b>a) { max=c; min=a; between=b; } else if(c>a&&c>b&&a>b) { max=c; min=b; 本文出处: http://www.52bcx.com/Program/c/hx/16.html |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|