例如:输入,12,25,则输出12月25号为的第360天,今年还剩下6天。
#include<stdio.h>#include<string.h>#include<math.h>bool judge(int n);//判断闰年还是平年 void split(char *s,int a[]);//提取输入的字符串中的日期信息(年、月、日) int main(void){int run[12]={31,29,31,30,31,30,31,31,30,31,30,31};//闰年每月天数映射数组 int ping[12]={31,28,31,30,31,30,31,31,30,31,30,31};//平年每月天数映射数组 char s[10]; int a[3]={0};//a[0]是年份、a[1]是月份、a[2]是天数 int sum=0;gets(s);split(s,a);if(judge(a[0])){//先判断闰年还是平年for(int i=a[1];i<=12;i++){sum+=run[i];}sum-=a[2];printf("%d月%d号为%d年第%d天\n",a[1],a[2],a[0],366-sum); }else{for(int i=a[1];i<=12;i++){sum+=ping[i];}sum-=a[2];printf("%d月%d号为%d年第%d天\n",a[1],a[2],a[0],365-sum); }printf("今年还剩下%d天\n",sum);return 0;}bool judge(int n){//判断闰年if(n%4==0&&n%100!=0||n%400==0){return true;}else{return false;}}void split(char *s,int a[]){//分割输入的字符串,获取年月日信息int n=0;int i=0;while(*s!='\0'){if(*(s+1)==','||*(s+1)=='\0'){for(int j=0;j<=n;j++){a[i]+=(*(s-j)-48)*(int)pow(10,j);}n=0;i++;s++;continue;}else if(*s!=','){n++;}s++;}}