找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 1221|回复: 9

【初学者求助】一个简单的问题

[复制链接]
发表于 2009-11-2 02:50:07 | 显示全部楼层 |阅读模式 IP:江苏扬州
对各位大虾来说应该很简单吧~!
题目:输入某年某月某日,判断该日是该年的第几天.
需要各位给个提示什么的,谢谢了!
发表于 2009-11-2 02:50:08 | 显示全部楼层 IP:江苏扬州
首先先判断年份是 闰年 还是 平年

调用2个数组 一个是平年数组 ,第二个是闰年数组

比如:平年数组a[12]={31,28,……}

输入的第几个月 ,就把n-1个月全加起来

再加上第几天,就可以了了
回复

使用道具 举报

发表于 2009-11-2 02:50:10 | 显示全部楼层 IP:江苏扬州
谢谢~!呵呵~!
回复

使用道具 举报

发表于 2009-11-2 02:50:12 | 显示全部楼层 IP:江苏扬州
不知道如果不用数组的话有别的更简单的方法吗?其实本人刚上C++课程还没学到数组,希望有达人可以再回复我一下!
回复

使用道具 举报

发表于 2009-11-2 02:50:14 | 显示全部楼层 IP:江苏扬州
#include<iostream>
#include<string>
using namespace std;
int str[12]={31,29,31,30,31,30,31,31,30,31,30,31};
int str2[12]={31,28,31,30,31,30,31,31,30,31,30,31};
struct Year
{
int _Year;
int _month;
int _day;
};
int year(int _year)
{
if(_year%4==0 && _year%100!=0 || _year%100==0 && _year%400==0)
{
return str[12];
}
else
return str2[12];
}
int main()
{
int day,num=0,temp;
Year a;
while(cin >> a._Year >> a._month >> a._day)
{
year(a._Year);
if(year(a._Year)==str[12])
{
for(temp=0;temp<a._month;temp++)
num+=str[temp];
num+=a._day;
cout << num << endl;
}
if(year(a._Year)==str2[12])
{
for(temp=0;temp<a._month;temp++)
num+=str2[temp];
num+=a._day;
cout << num << endl;
}
}
return 0;
}

看看这个我写的,呵呵。有用的话你看看,不难的,思路很清楚的
回复

使用道具 举报

发表于 2009-11-2 02:50:15 | 显示全部楼层 IP:江苏扬州
定义结构体是浪费
回复

使用道具 举报

发表于 2009-11-2 02:50:17 | 显示全部楼层 IP:江苏扬州
额~~谢谢~!今天上课要学数组啦~!努力
回复

使用道具 举报

发表于 2009-11-2 02:50:19 | 显示全部楼层 IP:江苏扬州
C source file. No optimization is applied.

No arrays are used.


======================================================

#include <stdio.h>
/**
Jan. 1 is the 1st day of each year.
January is 1st month.
Day 1 is 1st day.
*/
int dayCounting(int year, int month, int day)
{
int loopYear = (year % 4==0 && year%100!=0) || (year % 400 == 0);
int whichDay = 1;
int daysOfFeb = (loopYear ? 29 : 28);
switch(month)
{
case 1:
whichDay = day;
break;
case 2:
whichDay = 31 + day;
break;
case 3:
whichDay = 31 + daysOfFeb + day;
break;
case 4:
whichDay = 31 + daysOfFeb + 31 + day;
break;
case 5:
whichDay = 31 + daysOfFeb + 31 + 30 + day;
break;
case 6:
whichDay = 31 + daysOfFeb + 31 + 30 + 31 + day;
break;
case 7:
whichDay = 31 + daysOfFeb + 31 + 30 + 31 + 30+ day;
break;
case 8:
whichDay = 31 + daysOfFeb + 31 + 30 + 31 + 30+ 31+ day;
break;
case 9:
whichDay = 31 + daysOfFeb + 31 + 30 + 31 + 30+ 31+ 31 + day;
break;
case 10:
whichDay = 31 + daysOfFeb + 31 + 30 + 31 + 30+ 31+ 31 + 30 + day;
break;
case 11:
whichDay = 31 + daysOfFeb + 31 + 30 + 31 + 30+ 31+ 31 + 30 + 31+ day;
break;
case 12:
whichDay = 31 + daysOfFeb + 31 + 30 + 31 + 30+ 31+ 31 + 30 + 31+ 30 + day;
break;
}
return whichDay;
}
int main()
{
printf("%d\n", dayCounting(2007, 7, 28));
return 0;
}
回复

使用道具 举报

发表于 2009-11-2 02:50:21 | 显示全部楼层 IP:江苏扬州
高!!
回复

使用道具 举报

发表于 2009-11-2 02:50:22 | 显示全部楼层 IP:江苏扬州
HJin...竟然玩阴的...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-29 23:26 , Processed in 0.196496 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表