我的代码如下,不过运行有:warning C4700: local variable 'n' used without having been initialized 还没找到原因!!!!
代码:
#include<iostream.h>
void main(void)
{int year,month,day,n,m;
cout<<"year:"<<"month:"<<"day:"<<endl;
cin>>year>>month>>day;
if((year%4==0&&year%100!=0)||(year%400==0))//////////////判断是否为闰年
switch(month)
{case 1: n=0;break;
case 2: n=31;break;
case 3: n=60;break;//////////////////是闰年则从2月开始每月都多一天
case 4: n=91;break;
case 5: n=121;break;
case 6: n=150;break;
case 7: n=180;break;
case 8: n=211;break;
case 9: n=242;break;
case 10: n=272;break;
case 11: n=303;break;
case 12: n=333;break;
default: cout<<"there is something wrong!!"<<endl;break;}
else {if(n>31) n=n-1; else n;};//////////////////////不是闰年则从2月开始每月都少一天
if(year>=2001) m=(365*(year-2001)+(n+day))%7;
else m=(365*(2001-year)-(n+day))%7;
switch(m)
{case 0 : cout<<"sunday"<<endl;break;///////////////////能被7整除则我星期日
case 1 : cout<<"monday"<<endl;break;
case 2 : cout<<"tuesday"<<endl;break;
case 3 : cout<<"wednesday"<<endl;break;
case 4 : cout<<"thursday"<<endl;break;
case 5 : cout<<"friday"<<endl;break;
case 6 : cout<<"saturday"<<endl;break;
default: cout<<"day out of range"<<endl;break;}
}注:标准日期设定为2001年1月1日 恰好为星期1感谢参与讨论!
代码:
#include<iostream.h>
void main(void)
{int year,month,day,n,m;
cout<<"year:"<<"month:"<<"day:"<<endl;
cin>>year>>month>>day;
if((year%4==0&&year%100!=0)||(year%400==0))//////////////判断是否为闰年
switch(month)
{case 1: n=0;break;
case 2: n=31;break;
case 3: n=60;break;//////////////////是闰年则从2月开始每月都多一天
case 4: n=91;break;
case 5: n=121;break;
case 6: n=150;break;
case 7: n=180;break;
case 8: n=211;break;
case 9: n=242;break;
case 10: n=272;break;
case 11: n=303;break;
case 12: n=333;break;
default: cout<<"there is something wrong!!"<<endl;break;}
else {if(n>31) n=n-1; else n;};//////////////////////不是闰年则从2月开始每月都少一天
if(year>=2001) m=(365*(year-2001)+(n+day))%7;
else m=(365*(2001-year)-(n+day))%7;
switch(m)
{case 0 : cout<<"sunday"<<endl;break;///////////////////能被7整除则我星期日
case 1 : cout<<"monday"<<endl;break;
case 2 : cout<<"tuesday"<<endl;break;
case 3 : cout<<"wednesday"<<endl;break;
case 4 : cout<<"thursday"<<endl;break;
case 5 : cout<<"friday"<<endl;break;
case 6 : cout<<"saturday"<<endl;break;
default: cout<<"day out of range"<<endl;break;}
}注:标准日期设定为2001年1月1日 恰好为星期1感谢参与讨论!
===========================
你使用了一个没有初始化的变量!
------------------------------------
体验速度,体验CSDN新版论坛助手:http://community.csdn.net/Expert/TopicView.asp?id=3108679
else {if(n>31) n=n-1; else n;};有问题啊!
{
int year=0,month=0,day=0,n=0,m=0; //在这个地方初始化就可以了,虽然笨,但是管用
cout<<"year:"<<"month:"<<"day:"<<endl;
cin>>year>>month>>day;
if((year%4==0&&year%100!=0)||(year%400==0))//////////////判断是否为闰年
switch(month){
case 1: n=0;break;
case 2: n=31;break;
case 3: n=60;break;//////////////////是闰年则从2月开始每月都多一天
case 4: n=91;break;
case 5: n=121;break;
case 6: n=150;break;
case 7: n=180;break;
case 8: n=211;break;
case 9: n=242;break;
case 10: n=272;break;
case 11: n=303;break;
case 12: n=333;break;
default: cout<<"there is something wrong!!"<<endl;break;
}
else {if(n>31) n=n-1; };//////////////////////不是闰年则从2月开始每月都少一天
if(year>=2001) m=(365*(year-2001)+(n+day))%7;
else m=(365*(2001-year)-(n+day))%7;
switch(m)
{case 0 : cout<<"sunday"<<endl;break;///////////////////能被7整除则我星期日
case 1 : cout<<"monday"<<endl;break;
case 2 : cout<<"tuesday"<<endl;break;
case 3 : cout<<"wednesday"<<endl;break;
case 4 : cout<<"thursday"<<endl;break;
case 5 : cout<<"friday"<<endl;break;
case 6 : cout<<"saturday"<<endl;break;
default: cout<<"day out of range"<<endl;break;}
}