这是我们学校期末的课程设计,题目要求是:由键盘输入一个日期,求出所对应的星期。
以下是我写的程序,能编译出来,但是我不知道哪里出问题了……求教!
#include<iostream.h>
int LeapYearNumber(int a);
int month_day_run(int month_day);
int month_day_ping(int month_day);
int LeapYearNumber(int a)
{
int i=0,j,k;
for(j=1;j<a;j++)
{
{
if((j%4==0)&&(j%100!=0)||(j%400==0)) //判断从0001年至所输入年份中的闰年
i++; //将所有闰年的个数累加
}
k=i; //k为从0001年至所输入年份中的闰年个数
return k;
}
}
int month_day_run(int month_day)
{
int b,B;
{
switch(b)
{
//此段代码的意义是计算输入年份中,当年的月份所对应的天数
case 1:B=0;break;
case 2:B=31;break;
case 3:B=60;break;
case 4:B=91;break;
case 5:B=121;break;
case 6:B=152;break;
case 7:B=182;break;
case 8:B=213;break;
case 9:B=244;break;
case 10:B=274;break;
case 11:B=305;break;
case 12:B=335;break;
}
}
month_day=B;
return month_day;
}
int month_day_ping(int month_day)
{
int b,B;
{
switch(b)
{
//此段代码的意义是计算输入年份中,当年的月份所对应的天数
case 1:B=0;break;
case 2:B=31;break;
case 3:B=59;break;
case 4:B=90;break;
case 5:B=120;break;
case 6:B=151;break;
case 7:B=181;break;
case 8:B=212;break;
case 9:B=243;break;
case 10:B=273;break;
case 11:B=304;break;
case 12:B=334;break;
}
}
month_day=B;
return month_day;
}
void main()
{
int a,b,c,month_day,k; //输入数据
cout<<"请输入年月日(空格分隔):";
cin>>a>>b>>c;
if((a%4!=0)&&(a%100!=0)||(a%400!=0)) //若所输入的年份是平年
{
month_day_ping(month_day);
}
if((a%4==0)&&(a%100!=0)||(a%400==0)) //若所输入的年份是闰年
{
month_day_run(month_day);
}
LeapYearNumber(a);
int total_day,date;
total_day=k*366+((a-k)*365)+month_day+c-1; //计算从基准点开始,到所输入年份一共所经历的天数
date=total_day%7; //对总天数进行求余
switch(date)
{
//通过余数判断星期几
case 0:cout<<"这天是星期日!"<<endl;break;
case 1:cout<<"这天是星期一!"<<endl;break;
case 2:cout<<"这天是星期二!"<<endl;break;
case 3:cout<<"这天是星期三!"<<endl;break;
case 4:cout<<"这天是星期四!"<<endl;break;
case 5:cout<<"这天是星期五!"<<endl;break;
case 6:cout<<"这天是星期六!"<<endl;break;
}
}
vbtraz大哥,我错了,我实在不知道该怎么办了,能不能给点详细的改进方案……~