C语言逻辑运算符与逻辑表达式

直接上代码,讲解都在代码中

代码的工作过程如下:

  1. 包含了必要的头文件 <stdio.h><stdlib.h>

  2. 定义了 main() 函数,这是程序的入口点。

  3. 声明了两个整数变量 ij,分别初始化为0和1。

  4. 程序进入一个 while 循环,该循环反复使用 scanf() 函数从用户那里读取一个整数值。只要提供有效的整数输入,循环就会继续进行。

  5. 在循环内部,有一个 if 语句,它检查输入的年份(i)是否为闰年。它使用了你提到的闰年规则:能被4整除且不能被100整除,或者能被400整除。根据条件,它打印出年份是否为闰年。

  6. 循环结束后,将 i 的值赋值为对 j 的双重否定的结果。由于 j 是1,!!j 的结果也是1,所以 i 的值变为1。

  7. 程序然后使用 printf() 打印出 i 的值(为1)。

  8. 最后,程序返回0,表示执行成功。

注意:使用 !!j 的方式有点不寻常,因为不清楚进行此操作的原因。这实际上将 i 设置为1,而做这个操作的原因可能取决于代码的更广泛上下文。

//逻辑运算符与逻辑表达式
#include<stdio.h>
#include<stdlib.h>
int main(){
    int i=0,j=1;
    while (scanf("%d",&i))
    {
      
        if (i < 0) {
            break; // 输入负数,结束循环
        }
        
        if (i%4==0 && i%100!=0 || i%400==0)
        {
            printf("%d是闰年\n",i);
        }else{
            printf("%d不是闰年\n",i);
        }
        
    }
    i=!!j;// 这将'i'的值设置为1(真),因为'j'的值为1。
    printf("i的值=%d\n",i);
    return 0;
}     
        //短路运算
     /*
           在这段代码中,条件 (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) 使用了短路运算:
           如果 i % 4 == 0 不成立,那么整个表达式必定为假,后面的条件不会被计算。
           如果 i % 4 == 0 成立,但是 i % 100 != 0 不成立,同样整个表达式为真,后面的条件不会被计算。
           这是因为在逻辑运算 &&(逻辑与)中,只有当两个条件都为真时,整个表达式才为真。
           所以,如果第一个条件为假,整个表达式就不可能为真,所以后面的条件不需要计算。
           类似地,在逻辑运算 ||(逻辑或)中,只要有一个条件为真,整个表达式就为真,
           所以如果第一个条件为真,后面的条件也不需要计算。
          */

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值