一个比较简单的程序(来源Cprimerplus P197 程序7.8)
/* paint.c -- 使用条件运算符 */
#include
#define COVERAGE 350//每罐油漆可刷的面积(单位:平方英尺)
int main()
{
int sq_feet;
int cans;
printf("Enter number of square feet to be painted:\n");
while(scanf("%d",&sq_feet)==1)
{
cans=sq_feet/COVERAGE;
cans+=((sq_feet%COVERAGE==0))?0:1;//这一行的括号
printf("You need %d %s of paint.\n",cans,cans==1?"can":"cans");
printf("Enter next value (q to quit):\n");
}
return 0;
}
问题:
在cans+=((sq_feet%COVERAGE==0))?0:1;这一行,
为什么这两个括号是在这里的,因为我自己写的是
cans+=((sq_feet%COVERAGE)==0)?0:1;
这两种写法对结果是没有影响的,但是括号位置不一样可能意味着逻辑思维不一样,我想问清楚这个问题,以免以后秉着错误的思维写更大的程序。