帮忙改一个C++程序

来源:百度知道 编辑:UC知道 时间:2024/05/21 19:46:04
是一个输出该年月日是该年的第多少天的程序~
参数比较乱...谢谢了
#include <iostream.h>
int year(int a);
int day(int n,int m,int d);
void main()
{
int a,d,m,n,date;
cout<<"请输入年份:";
cin>>a;
cout<<"请输入月份:";
cin>>m;
cout<<"请输入日期:";
cin>>d;
n=year(a);
date=day(n,m,d);
cout<<"是今年的第"<<date<<"天";
}
int year(int a)
{
int n;
if(a%4==0&&a%100!=0||a%100==0&&a%400==0)
n=366;
else
n=365;
return n;
}
int day(int n,int m,int d)
{
int date;
switch(m)
{
case'1':date=d;break;
case'2':date=31+d;break;
case'3':date=n-306+d;break;
case'4':date=n-275+d;break;
case'5':date=n-245+d;break;
case'6':date=n-214+d;break;
case'7':date=n-184+d;b

LZ没给程序...怎么改...
算了 自己写一个 等会贴上来...
对了 问下 需要检查输出的合法性么?

这是没检查合法性的程序
#include<iostream>
using namespace std;

int getCount(int year, int month, int day)
{
int temp = 0;
if(month==1)
return day;
else if(month==2)
return day+31;
else
{
if(year%400==0||(year%4==0&&year%100!=0))
++temp;
switch(month)
{
case 3:temp = temp+59+day;break;
case 4:temp = temp+90+day;break;
case 5:temp = temp+120+day;break;
case 6:temp = temp+151+day;break;
case 7:temp = temp+181+day;break;
case 8:temp = temp+212+day;break;
case 9:temp = temp+243+day;break;
case 10:temp = temp+273+day;break;
case 11:temp = temp+304+day;break;
case 12:temp = temp+334+day;break;