int getDaysByMonth(int m,int d,char flag){
int c;
If(flag=='r'){//閏年?
if(m = = 2){//二月是29天。
return(31+d);
} else if(m & gt;2){
c = 0;
m = m-1;
for(;m & gt0;m - ){
if(m = = 1 | | m = = 3 | | m = = 5 | | m = = 7 | | m = = 8 | | m = = 10 | | m = = 12){
c+= 31;
}else if(m==2){
c+= 29;
}否則{
c+= 30;
}}
返回c+d;
}否則{
返回d;
}
}else{//平年?
if(m = = 2){//二月是28天。
return(31+d);
} else if(m & gt;2){
c = 0;
m = m-1;
for(;m & gt0;m - ){
if(m = = 1 | | m = = 3 | | m = = 5 | | m = = 7 | | m = = 8 | | m = = 10 | | m = = 12){
c+= 31;
}else if(m==2){
c+= 28;
}否則{
c+= 30;
}}
返回c+d;
}否則{
返回d;
}}}
void main(){
int y,m,d,count = 1;
Printf("請輸入年、月、日(如2017-01-01):");
scanf("%d-%d-%d ",& ampy & amp;m & amp;d);
而(?((((y % 4 = = 0 & amp& ampy%100!= 0)| |(y % 400 = = 0))& amp;& amp(m = = 2))& amp;& ampd & gt29) || (y%400!=0?
& amp& ampy%4!= 0 & amp& ampm = = 2 & amp& ampd & gt28) ||?((m = = 1 | | m = = 3 | | m = = 5 | | m = = 7 | | m = = 8 | | m = = 10 | |?
m = = 12)& amp;& ampd & gt31)| |((m = = 4 | | m = = 6 | | m = = 9 | | m = = 11)& amp;& ampd & gt30)){
Printf("請輸入年、月、日(如2017-01-01):");
scanf("%d-%d-%d ",& ampy & amp;m & amp;d);}
//先判斷是不是閏年。
if((y % 4 = = 0 & amp;& ampy%100!=0)||(y%400==0)){//閏年?
count=getDaysByMonth(m,d,' r ');
}else{//平年?
count=getDaysByMonth(m,d,' n ');}?
Printf("%d-%02d-%02d是今年的第%d天\n ",y,m,d,count);
putchar(' \ n ');
}
擴展數據:
當壹個表達式中有很多條件時,會用不同的運算符來連接,必須根據不同的優先級適當使用括號。
壹個表達式可以包含由不同運算符連接的不同數據類型的多個數據對象;因為表達式中有很多運算,不同的組合順序可能導致不同的結果甚至錯誤的運算,因為當表達式中有很多運算時,必須按照壹定的順序進行組合,以保證運算的合理性和結果的正確性和唯壹性。
優先級從上到下遞減,頂部的優先級最高,逗號運算符的優先級最低。表達式的組合順序取決於表達式中各種運算符的優先級。優先級高的運算符先組合,優先級低的運算符後組合。同壹行的操作員具有相同的優先級。
參考資料:
百度百科-運營商優先