为了账号安全,请及时绑定邮箱和手机立即绑定

急!关于c++编日历的问题,大佬帮忙看看

急!关于c++编日历的问题,大佬帮忙看看

C++
逝月兮 2017-06-22 19:09:21
#include<iostream>#include<iomanip>using namespace std;class Calendar{public:int weekday;int year;public://Calendar(){};void printmonthdays();void printtitle(int m);int monthdays(int n);int firstday(int year);};int Calendar::monthdays(int m){ switch(m) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; case 4: case 6: case 9: case 11: return 30; case 2: if(((this->year%4==0&&this->year%100!=0)||this->year%400==0)) return 29; else return 28; default:return 0; }}void Calendar::printmonthdays(){ int days; for(int n=1;n<=12;n++) { printtitle(n); days=monthdays(n); for(int i=1;i<=days;i++) { cout<<setw(7)<<i; weekday=(weekday+1)%7;//星期 if(weekday==0) cout<<"\n"; } cout<<"\n"; }}void Calendar::printtitle(int m){ int i;  cout<<"\n"<<m<<"月  日     一     二     三     四     五     六 \n"; //cout<<" ";  for(i=0;i<weekday;i++) cout<<"       ";}int Calendar::firstday(int year){ int a,b; a=year/100; b=year%100-1; return (b+(b/4)+(a/4)-2*a+(26*(13+1)/10))%7;}void main(int argc,char* argv[]){ int year; int weekday; Calendar cal; cout<<"请输入你要查看的年份:"; cin>>year; weekday=cal.firstday(year); cout<<"\n\n"; cout<<"           "<<year<<"年"; cal.printmonthdays(); cout<<"\n\n";}我找不到错误,麻烦帮我分析下,谢谢
查看完整描述

1 回答

已采纳
?
MR帽子先生

TA贡献245条经验 获得超106个赞

switch(m)错了,括号里面内容应该转为int类型不然是str类型的。

希望对你有帮助,祝您学习愉快,有帮助的话请采纳我的答案。

查看完整回答
反对 回复 2017-06-24
  • 逝月兮
    逝月兮
    请问具体怎么改呢
  • MR帽子先生
    MR帽子先生
    switch(int m) 直接转换为int类型就可以了。祝你学习顺利。
  • 逝月兮
    逝月兮
    抱歉,这几天考试,没来得及回复你。这样改不对哦,需要在firstday(int year)函数这里,改为int Calendar::firstday(int year_input) { year=year_input; …… 但我不知道这是什么意思,in_put是啥啊
点击展开后面2
  • 1 回答
  • 0 关注
  • 1133 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信