编程学习网 > 编程语言 > C/C++开发 > c语言编程:逻辑运算案例讲解!
2022
11-17

c语言编程:逻辑运算案例讲解!

今天编程学习网为大家讲解c语言编程:逻辑运算案例讲解!有需要的小伙伴可以参考一下:

1、逻辑运算符

C语言有3种逻辑运算符,其逻辑运算对象可以是关系表达式或逻辑表达式,逻辑运算的结果只有“真”或“假”。

逻辑非(!):逻辑非运算符的对象如果为“真”,那么结果为“假”;若对象为“假”,则结果为“真”。
逻辑与(&&):逻辑与运算符的两个逻辑运算对象只要有一个为“假”,那么结果就是“假”;两个都为“真”,结果才为“真”。
逻辑或(||):逻辑或运算符的两个逻辑运算对象只要有一个为“真”,那么结果就是“真”;两个都为“假”,结果才为“假”。

2、逻辑运算符的使用
其中 ! 是单目运算符,&& 与 || 是双目运算符,C语言中单目运算符的优先级是高于双目运算符的。所以逻辑非(!)的运算优先级高于关系运算符。而逻辑与(&&)和逻辑或(||)的优先级低于关系运算符。

逻辑运算符经常是与if()语句搭配使用的,用它可以连接关系表达式,例如表示x是否在闭区间[-1,1]中可以表示为if (x>=-1&&x<=1),表示x>=-1且x<=1那么此表达式的值才为“真”,才会执行if下的语句。

注 :逻辑运算符的使用会出现短路的现象,例如当x=-2时,那么if (x>=-1&&x<=1)这个语句的第一个语句x>-1就为“假”,此时就可以判断出这个逻辑语句的结果一定就为“假”,程序就不会执行后面一句判断x<=1,如果后面有改变x值的语句,例如if(x>=-1&&x++<=1),那么此时x++就不会执行,即执行完此if语句后,x的值仍然为-2,。请注意此种现象!

例1:判断输入的字符是否为英文字母
从键盘输入一个字符,判断是不是英文字母。
#include <stdio.h>

int main(void)
{
char ch;

printf("Enter a character:");
ch = getchar(); /*变量ch接收从键盘输入的一个字符*/
if ((ch>='a' && ch<='z') || (ch>='A' && ch<='Z')){ /*判断是否为英文字符,含大小写*/
printf("It is a letter.\n");
} else {
printf("It is not a letter.\n");
}

return 0;
}


运行结果:

Enter a character:u
It is a letter.

Enter a character:5
It is not a letter.

例2:统计英文字母和数字字符
输入一个正整数n,再输入n个字符,统计其中英文字母、数字字符和其他字符的个数。
#include <stdio.h>

int main(void)
{
int digit, i, letter, n, other; /*定义3个变量分别存放统计结果*/
char ch;

digit = letter = other = 0; /*置存放统计结果的3个变量的初值为零*/
printf("Enter n:");
scanf("%d", &n); 
getchar(); /*读入并舍弃换行符*/
printf("Enter %d characters:", n); 
for (i=1; i<=n; i++){
ch = getchar();
if ((ch>='a' && ch<='z')||(ch>='A' && ch<='Z')){
letter++; /*如果ch是英文字母,累加letter*/
} else if (ch>='0' && ch<='9'){
digit++; /*如果ch是数字字符,累加digit*/
} else {
other++; /*ch是除字母、数字字符、以外的其他字符,累加other*/
}
}
printf("letter = %d, digit = %d, other = %d\n", letter, digit, other);

return 0;
}

运行结果:

Enter n:7
Enter 7 characters:tys23*&
letter = 3, digit = 2, other = 2

注: 1、该段程序注意digit = letter = other = 0;这种写法,这是因为赋值运算符的结合方向是从右向左,其等价于以下代码:
other = 0;
letter = other;
digit = letter;

这样所以的变量都会置0。但是一般不建议使用这种写法,因为这样可读性不好。
2、注意scanf()函数后的getchar();这一句程序,因为scanf()函数输入数据时要以回车结束,而回车本身也是一个字符,所以会被getchar();这一句给读到,这句话读到后什么也没做,相当于舍弃掉了scanf()最后输入的回车字符。
以上就是“c语言编程:逻辑运算案例讲解!”的详细内容,想要了解更多C语言教程欢迎持续关注编程学习网


扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取