c语言中的逻辑运算符之间的关系是什么样的,怎样分析逻辑表达式?

例如闰年问题

int y;
scanf("%d",&y);
if(y%400==0 || (y%4==0 && y%100!=0)) printf("是闰年\n");
else printf("不是闰年\n");

非运算(!)和与运算(&&)优先级相同
或运算(||)比它们低
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-02-28
没有分啊,不过我还是给你一个闰年的例子吧:

首先,闰年的规则是:四闰、百不润;四百再闰。

那么用一个函数来实现,代码如下:

/**
* 判断是否是闰年
*
* @para const int year 待判断的年份
* @return 如果该年是闰年,返回 1, 否则返会 0
*/
int is_leap_year(const int year)
{
if (year % 400 == 0)
{
return 1;
}
else if (year % 4 == 0 && year % 100 != 0)
{
return 1;
}

return 0;
}
第2个回答  2009-02-28
c语言提供3种逻辑运算符:
!(逻辑非)
||(逻辑或)
&&(逻辑与)
其中!的优先级最高,||与&&的优先级相同。
关于优先级与结合性具体可参考c语言教材后的附录
第3个回答  2009-02-28
两个对象都要满足则为与,否定用非,其余用或,当两个条件不能同时满足用异或
按照运算的优先级,非与或异或,其余用左集合原则