九度题目1070
2016-02-21 17:17
218 查看
#include<stdio.h>
#define run(x) x%100!=0&&x%4==0||x%400==0?1:0
int dayOfMonth[13][2]={
0,0,
31,31,
28,29,
31,31,
30,30,
31,31,
30,30,
31,31,
31,31,
30,30,
31,31,
30,30,
31,31,
};
struct Date{
int Day,Month,Year;
void nextday(){
Day++;
if (Day>dayOfMonth[Month][run(Year)]){
Day=1;
Month++;
if(Month>12){
Month=1;
Year++;
}
}
}
};
int buf[3001][13][32];
int main(){
int cnt=0;
int d,m,y,n;
Date a;
a.Day=1;
a.Month=1;
a.Year=0;
while(a.Year!=3001){
buf[a.Year][a.Month][a.Day]=cnt;
a.nextday();
cnt++;
}
while(scanf("%d %d %d",&y,&m,&d)!=EOF){
n=buf[y][m][d]-buf[y][1][1]+1;
printf("%d\n",n);
}
return 0;
}
所犯错误:
竟然少些了一个月的天数!!!!
所以在初始化数组的时候,一定要注意个数对不对,要细心准确
还有除了函数之外,后面都要加;分号
#define run(x) x%100!=0&&x%4==0||x%400==0?1:0
int dayOfMonth[13][2]={
0,0,
31,31,
28,29,
31,31,
30,30,
31,31,
30,30,
31,31,
31,31,
30,30,
31,31,
30,30,
31,31,
};
struct Date{
int Day,Month,Year;
void nextday(){
Day++;
if (Day>dayOfMonth[Month][run(Year)]){
Day=1;
Month++;
if(Month>12){
Month=1;
Year++;
}
}
}
};
int buf[3001][13][32];
int main(){
int cnt=0;
int d,m,y,n;
Date a;
a.Day=1;
a.Month=1;
a.Year=0;
while(a.Year!=3001){
buf[a.Year][a.Month][a.Day]=cnt;
a.nextday();
cnt++;
}
while(scanf("%d %d %d",&y,&m,&d)!=EOF){
n=buf[y][m][d]-buf[y][1][1]+1;
printf("%d\n",n);
}
return 0;
}
所犯错误:
竟然少些了一个月的天数!!!!
所以在初始化数组的时候,一定要注意个数对不对,要细心准确
还有除了函数之外,后面都要加;分号
相关文章推荐
- Linux C函数参考手册(PDF版)
- Lua教程(十七):C API简介
- 简单谈谈lua和c的交互
- C#实现打造气泡屏幕保护效果
- 举例讲解C#编程中委托的实例化使用
- 使用C#代码获取存储过程返回值
- C/C++数据对齐详细解析
- 利用C语言来求最大连续子序列乘积的方法
- 字符串的组合算法问题的C语言实现攻略
- C 语言基础教程(我的C之旅开始了)[三]
- 学习C和C++的9点经验总结
- C++中的extern “C”用法详解
- C 语言基础教程(我的C之旅开始了)[七]
- 最大子矩阵问题实例解析
- C字符串操作函数实现方法小结
- C语言中static的作用及C语言中使用静态函数有何好处
- 字典树的基本知识及使用C语言的相关实现
- 详解C语言中free()函数与getpagesize()函数的使用
- C/C++ 宏详细解析