C語言條件運算子例項分析
阿新 • • 發佈:2019-02-13
************
條件運算子:?:
例子:max=(a>b) ? a:b;
表示如果a大於b,那麼a賦值給max,否則是b賦值給max;
等價於: if(a>b)
max=a;
else
max=b;
補充一點:條件運算子需要三個運算物件,其形式為a?a:b
************
下面通過一個例項來運用條件運算子
#include <stdio.h>
#define COVERAGE 350 /*每罐油漆可以刷的面積*/
int main()
{
int sq_feet;
int cans;
printf("please enter the number of square feet to be painted:\n");
while(scanf("%d",&sq_feet)==1)
{
cans=sq_feet/COVERAGE; /*表示當面積除以平均可以整除的情況之下,cans無需進1*/
cans+=((sq_feet%COVERAGE==0))?0:1; /*表示面積和平均的取模,如果取模為0,那麼0賦值給cans,反之進1,證實了油漆不可能1.5罐這樣賣*/
printf("you need %d %s of pain\n",cans, /*最後根據單複數列印can和cans,只要懂得運用條件運算子即可了*/
cans==1?"can":"cans");
printf("enter next value (q to quit):\n");
}
return 0;
}
該程式計算刷給平方英尺的面積需要多少罐油漆,基本演算法很簡單,用平方英尺總面積除以每平方可刷面積,即可得到需要多少罐油漆。
然後我們回到現實來處理這個演算法,得知油漆不可能1.5罐,1.1罐這樣賣法,所以如果計算結果得到有小數的話,那麼結果則應該進1。
**************
最後如果有什麼需要改進的地方 歡迎留言!謝納!!!
條件運算子:?:
例子:max=(a>b) ? a:b;
表示如果a大於b,那麼a賦值給max,否則是b賦值給max;
等價於: if(a>b)
max=a;
else
max=b;
補充一點:條件運算子需要三個運算物件,其形式為a?a:b
************
下面通過一個例項來運用條件運算子
#include <stdio.h>
#define COVERAGE 350 /*每罐油漆可以刷的面積*/
int main()
{
int sq_feet;
int cans;
printf("please enter the number of square feet to be painted:\n");
while(scanf("%d",&sq_feet)==1)
{
cans=sq_feet/COVERAGE; /*表示當面積除以平均可以整除的情況之下,cans無需進1*/
cans+=((sq_feet%COVERAGE==0))?0:1; /*表示面積和平均的取模,如果取模為0,那麼0賦值給cans,反之進1,證實了油漆不可能1.5罐這樣賣*/
printf("you need %d %s of pain\n",cans, /*最後根據單複數列印can和cans,只要懂得運用條件運算子即可了*/
cans==1?"can":"cans");
printf("enter next value (q to quit):\n");
}
return 0;
}
該程式計算刷給平方英尺的面積需要多少罐油漆,基本演算法很簡單,用平方英尺總面積除以每平方可刷面積,即可得到需要多少罐油漆。
然後我們回到現實來處理這個演算法,得知油漆不可能1.5罐,1.1罐這樣賣法,所以如果計算結果得到有小數的話,那麼結果則應該進1。
**************
最後如果有什麼需要改進的地方 歡迎留言!謝納!!!