“写一个函数,输入一个8位整数,如20180327,输出2018-03-27” c 语言如何实现?
推荐回答
需要考虑的问题很多,参考代码如下:#include<stdio.h>#define ERR "error\n"void date(int d){int mon,day,year;if(d<0){printf("-");//负号表示公元前d=-d;}year=d/10000;mon=(d/100)%100;day=d%100;switch(mon){case 1: case 3: case 5:case 7: case 8: case 10:case 12:if(day>31||day==0){printf(ERR);return;}break;case 4: case 6: case 9:case 11:if(day>30||day==0){printf(ERR);return;}break;case 2:if((year%4==0&&year%100!=0)||\year%400==0){if(day>29||day==0){printf(ERR);return;}} else {if(day>28||day==0){printf(ERR);return;}}break;default:printf(ERR);return; }printf("%d-%02d-%02d\n",year,mon,day);}int main(){int d;while(scanf("%d",&d)!=EOF){date(d);}return 0;}