2823 - 【设计型】第9章: 指针 9.4(1)某月某日(1)
输入某年某月某日,计算并输出它是这一年的第几天。
/* 函数功能: 对给定的某年某月某日,计算它是这一年的第几天
函数参数: 整型变量year、month、day,分别代表年、月、日
函数返回值: 这一年的第几天*/
int DayofYear(int year,int month,int day);
题目输入
题目输出
输入/输出样例
题目输入
2012-03-01
题目输出
61
提示
注意最后一行输出没有回车
C语言解答
#include<stdio.h> int DayofYear(int year,int month,int day); int main() { int y[100],m[100],d[100],num[100],l,i; scanf("%d",&l); for(i=0;i<l;i++) { scanf("%d-%d-%d",&y[i],&m[i],&d[i]); num[i] = DayofYear(y[i],m[i],d[i]); } for(i=0;i<l;i++) { if(i!=l-1) printf("%d\n",num[i]); else printf("%d",num[i]); } return 0; } int DayofYear(int x,int y,int z) { int n; if(x%4==0&&x%100!=0||x%400==0) { switch(y) { case 1: n = z;break; case 2: n = 31+z;break; case 3: n = 60+z;break; case 4: n = 91+z;break; case 5: n = 121+z;break; case 6: n = 152+z;break; case 7: n = 182+z;break; case 8: n = 213+z;break; case 9: n = 244+z;break; case 10:n = 274+z;break; case 11:n = 305+z;break; case 12:n = 335+z;break; } } else { switch(y) { case 1: n = z;break; case 2: n = 31+z;break; case 3: n = 59+z;break; case 4: n = 90+z;break; case 5: n = 120+z;break; case 6: n = 151+z;break; case 7: n = 181+z;break; case 8: n = 212+z;break; case 9: n = 243+z;break; case 10:n = 273+z;break; case 11:n = 304+z;break; case 12:n = 334+z;break; } } return n; }
C++解答
#include<stdio.h> int DayofYear(int year,int month,int day); int main() { int y[100],m[100],d[100],num[100],l,i; scanf("%d",&l); for(i=0;i<l;i++) { scanf("%d-%d-%d",&y[i],&m[i],&d[i]); num[i] = DayofYear(y[i],m[i],d[i]); } for(i=0;i<l;i++) { if(i!=l-1) printf("%d\n",num[i]); else printf("%d",num[i]); } return 0; } int DayofYear(int x,int y,int z) { int n; if(x%4==0&&x%100!=0||x%400==0) { switch(y) { case 1: n = z;break; case 2: n = 31+z;break; case 3: n = 60+z;break; case 4: n = 91+z;break; case 5: n = 121+z;break; case 6: n = 152+z;break; case 7: n = 182+z;break; case 8: n = 213+z;break; case 9: n = 244+z;break; case 10:n = 274+z;break; case 11:n = 305+z;break; case 12:n = 335+z;break; } } else { switch(y) { case 1: n = z;break; case 2: n = 31+z;break; case 3: n = 59+z;break; case 4: n = 90+z;break; case 5: n = 120+z;break; case 6: n = 151+z;break; case 7: n = 181+z;break; case 8: n = 212+z;break; case 9: n = 243+z;break; case 10:n = 273+z;break; case 11:n = 304+z;break; case 12:n = 334+z;break; } } return n; }
提示
注意最后一行输出没有回车