Lenguaje de programación del mes 20175
int getDaysByMonth(int m, int d, char flag){
int c;
If(flag== 'r'){//¿Año bisiesto?
if(m = = 2){//Febrero tiene 29 días.
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){
c+= 31;
}si(m== 2) {
c+= 29;
} En caso contrario {
c+=
}}
Devolver c+d;
}else{
Devolver d;
}
}else{//¿Año normal?
if(m = = 2){//Febrero tiene 28 días.
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){
c+= 31;
}si(m== 2) {
c+= 28
} En caso contrario {
c+=
}}
Devolver c+d;
} De lo contrario {
Devolver d
}}}
void main(){ p>
int y, m, d, count = 1;
Printf("Ingrese el año, mes y día (como 2017-01-01):"); >
scanf("%d-%d-%d ",&y&m&d);
Y (?((((y % 4 = = 0 &&y %100! = 0 )| |(y % 400 = = 0))& amp; >
& amp& ampy%4! = 0 & amp& ampm = = 2 & amp& ampd & gt28) ||?((m = = 1 | | m = = 3 | m = = 5 | | m = = 7 | m = = 8 | | m = = 9 | m = = 11)&&d>30)){
Printf("Ingrese el año, mes y día (como 2017-01-01):" ); /p>
scanf("%d-%d-%d ", &y & m & d }
//Primero determine si es un año bisiesto.
if((y % 4 == 0 && ampy%100!=0)||(y%400==0)){//¿Año bisiesto?
count=getDaysByMonth(m, d, ' r ');
}else{// ¿Años normales?
count=getDaysByMonth(m, d, ' n ');}?
Printf("%d-%02d-%02d es el %d día de este año\n " , y, m, d, count);
putchar('\n');
}
Datos extendidos:
Cuando hay muchas condiciones en una expresión, se utilizan diferentes operadores para conectarlas y los paréntesis se deben utilizar de forma adecuada según las diferentes prioridades.
Una expresión puede contener múltiples objetos de datos de diferentes tipos de datos conectados por diferentes operadores. Debido a que hay muchas operaciones en la expresión, diferentes órdenes de combinación pueden conducir a resultados diferentes o incluso operaciones incorrectas, porque cuando hay muchas; operaciones en una expresión, deben combinarse en un orden determinado para garantizar la racionalidad de las operaciones y la corrección y unicidad de los resultados.
Las prioridades disminuyen de arriba a abajo, siendo la superior la de mayor prioridad y el operador de coma la de menor prioridad. El orden en el que se combinan las expresiones depende de la precedencia de los distintos operadores en la expresión. Los operadores con mayor precedencia se combinan primero y los operadores con menor precedencia se combinan después. Los operadores de la misma fila tienen la misma prioridad.
Materiales de referencia:
Enciclopedia Baidu-Prioridad del operador