第四题 给年月日求星期 以后不用cin,cout和string了,我爱c语言我爱scanf
来源:互联网 发布:数据库 er设计 编辑:程序博客网 时间:2024/05/06 12:10
//学习字符串截取函数strncpy
//char src[] = {"123456789"};//strncpy(dest, src, 3);
//puts(dest);
//输出结果为 123
//char dest[4] = {""};
//char src[] = {"123456789"};
//strncpy(dest, src+3, 3);
//puts(dest);
//输出结果为 456
//strncat就是在原有字符上连接一些字符
//strcmp就是
//strcmp(“abcd”,”abcd”)的返回值是 0;
//strcmp(“abcd”,”dcba”)的返回值是 -1;
//strcmp(“dcba”,”abcd”)的返回值是 1;
//str1=”ABCDHG”,str2=”ABCDEF”
//strncmp(str1,str2,4)的返回值是 0;
//strncmp(str1,str2,5)的返回值是 1;
//本代码中主要用到strncmp函数
//再一次被scanf折服了,以后我决定不用cin和cout了也不用string了,就用c语言吧
#include <iostream>
#include <stdio.h>
#include <math.h>
#include <algorithm>
#include <string.h>
#include <string>
using namespace std;
#define leap(x) ((x%4==0&&x%100!=0)||x%400==0)?1:0
int dayinm[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
};
char month[13][20]={" ","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
//以后箱这样的数组就定义成固定大小的就好了长一点无所谓的
//就定义成20就好了
//下面使用strncmp,这里就可以偷懒了!!!
char week[8][20]={"","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};
struct date{
int day;
int mon;
int yea;
void next()
{
day++;
if(day>dayinm[mon][leap(yea)])
{
day=1;
mon++;
if(mon>12)
{
mon=1;
yea++;
}
}
}
void pre()
{
day--;
if(day<1)
{
day=dayinm[mon][leap(yea)];
mon--;
if(mon<1)
{
mon=12;
yea--;
}
}
}
};
int buf[32][13][5001];
int main()
{
date tmp;
tmp.day=9;
tmp.mon=10;
tmp.yea=2001;
int cnt=2;
while(tmp.yea<5000)
{
buf[tmp.day][tmp.mon][tmp.yea] = cnt;
cnt++;
if(cnt>7)cnt=1;
tmp.next();
}
tmp.day=9;
tmp.mon=10;
tmp.yea=2001;
cnt=2;
while(tmp.yea>0)
{
buf[tmp.day][tmp.mon][tmp.yea] = cnt;
cnt--;
if(cnt<1)cnt=7;
tmp.pre();
}
int ri;
char yue[20];
//这里一定不可以写成char* 否则不能用scanf读取输入!!!
//不信你试试
// char* a;
// scanf("%s",a);
// getchar();
// 果然他娘的报错了
//以后输入一般长度的东西就定义成固定大小的就好了长一点无所谓的
//就定义成20就好了
int nian;
while(scanf("%d%s%d",&ri,yue,&nian)!=EOF)
{
int t;
for(int i=1;i<13;i++) //居然在这个地方的13写成了8,天哪!以后写acm题要注意这些细节!!
{
// if(strcmp(month[i],yue)==0)//不要以为这个错了这个很牛逼的,让我来试一试
// {
// t=i;
// break;
// }
if(strncmp(month[i],yue,3)==0)//不要以为这个错了这个很牛逼的,yue和month[i]虽然没有填满,但是strcmp知道他们的长度!
{
t=i;
break;
}
}
cout<<week[buf[ri][t][nian]]<<endl;
}
return 0;
}
阅读全文
0 0
- 第四题 给年月日求星期 以后不用cin,cout和string了,我爱c语言我爱scanf
- 《我给的爱》
- 爱改变了我!
- 我为什么爱C语言(一)
- 我爱C罗
- 给我你的爱
- 父亲只给了我一滴泪的爱
- 跑了[我爱旅行车]
- 爱选择了你我
- 再见了,我的爱
- 我爱...
- 亲爱的,不是不爱你,而是我把爱给了我爱的人……
- 给我机会一定爱你
- 给我的爱机升级
- 《我爱我妻》
- 我爱我妻
- 我爱我生活
- 我爱我父母
- Android 注解
- 【连载】Dijkstra求最短路径算法设计—Java实现
- iptables进阶
- JAVA设计模式——命令模式
- Django 连接多数据库 配置
- 第四题 给年月日求星期 以后不用cin,cout和string了,我爱c语言我爱scanf
- 欢迎使用CSDN-markdown编辑器
- tensorflow 使用
- MySQL数据库学习11-插入数据
- java多线程(4)synchronized的作用
- leetcode#168. Excel Sheet Column Title
- Java连接Access数据库
- linux下gdb如何重定向输入
- 基于Struts2和hibernate的WebSocket聊天室的实现教程四:实现登录接口