程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
#include<stdio.h>
int main()
{
int i,j,k printf("请输入三个数分别代表某年某月某日:\n"scanf("%d%d%d",&i,&j,&k);if(((i%4==0)&&!(i%100==0))||(i%400==0){
switch(j)
{ case 1:printf("这一天是这一年的第%d天",k);break; case 2:printf("这一天是这一年的第%d天",31+k);break; case 3:printf("这一天是这一年的第%d天",31+29+k);break; case 4:printf("这一天是这一年的第%d天",31+29+31+k);break; case 5:printf("这一天是这一年的第%d天",31+29+31+30+k);break; case 6:printf("这一天是这一年的第%d天",31+29+31+30+31+k);break; case 7:printf("这一天是这一年的第%d天",31+29+31+30+31+30+k);break; case 8:printf("这一天是这一年的第%d天",31+29+31+30+31+30+31+k);break; case 9:printf("这一天是这一年的第%d天",31+29+31+30+31+30+31+k+31);break; case 10:printf("这一天是这一年的第%d天",31+29+31+30+31+30+31+k+31+30);break; case 11:printf("这一天是这一年的第%d天",31+29+31+30+31+30+31+k+31+30+31);break; case 12:printf("这一天是这一年的第%d天",31+29+31+30+31+30+31+k+31+30+31+30);break; default:printf("error\n"); else{
switch(j) { case 1:printf("这一天是这一年的第%d天",k);break; case 2:printf("这一天是这一年的第%d天",31+k);break; case 3:printf("这一天是这一年的第%d天",31+28+k);break; case 4:printf("这一天是这一年的第%d天",31+28+31+k);break; case 5:printf("这一天是这一年的第%d天",31+28+31+30+k);break; case 6:printf("这一天是这一年的第%d天",31+28+31+30+31+k);break; case 7:printf("这一天是这一年的第%d天",31+28+31+30+31+30+k);break; case 8:printf("这一天是这一年的第%d天",31+28+31+30+31+30+31+k);break; case 9:printf("这一天是这一年的第%d天",31+28+31+30+31+30+31+k+31);break; case 10:printf("这一天是这一年的第%d天",31+28+31+30+31+30+31+k+31+30);break; case 11:printf("这一天是这一年的第%d天",31+28+31+30+31+30+31+k+31+30+31);break; case 12:printf("这一天是这一年的第%d天",31+28+31+30+31+30+31+k+31+30+31+30);break; default:printf("error\n"); } } return 0;}