C++,我想输出枚举里面的常数,要怎么改
解决时间 2021-02-06 16:00
- 提问者网友:轮囘Li巡影
- 2021-02-05 17:34
#include
using namespace std;
enum Day {Mday = 1, Tuday, Wday, Tday, Fday, Sday, Suday};
struct Date
{
int year;
int month;
int day;
};
struct DayDate
{
Day OneDay;
Date SomeDate;
};
DayDate WenDidIthappen();
int main()
{
DayDate Gday;
Gday = WenDidIthappen();
cout <<"现在输出你输入的时间:" << Gday.SomeDate.year << " " < << " " << Gday.SomeDate.day;
return 0;
}
DayDate WenDidIthappen()
{
DayDate gSomeDay;
cout << "输入日期:";
cin >> gSomeDay.SomeDate.year >> gSomeDay.SomeDate.month >>
gSomeDay.SomeDate.day;
return gSomeDay;
}
就是要输出枚举Day是的面 Mday , Tuday, Wday, Tday, Fday, Sday, Suday
最佳答案
- 五星知识达人网友:持酒劝斜阳
- 2021-02-05 18:59
枚举型数据结构enum Day {Mday = 1, Tuday, Wday, Tday, Fday, Sday, Suday}; 中Mday,Tuday, Wday, Tday, Fday, Sday, Suday是常量,不能赋值(除了声名时,可以给他们指定值.)
在这里,Mday = 1
当cout<
因此,需要计算出日期对应的是星期几,并赋值给Day OneDay; ,然后可以用switch语句或者if~elseif~...~else等语句来输出!!!!!!!
下面是我添加后的程序:
你自己看看!!!!不满意自己改!!!!!!!!!!!!!
**********************运行结果,例如:2007-8-15 Wday **********************
#include
using namespace std;
enum Day {Mday = 1, Tuday, Wday, Tday, Fday, Sday, Suday};
struct Date
{
int year;
int month;
int day;
};
struct DayDate
{
Day OneDay;
Date SomeDate;
};
DayDate WenDidIthappen();
int Week_Day(DayDate OneDate);//add++
void show_week_day(Day WOne_Day);//add++
int main()
{
DayDate Gday;
Gday = WenDidIthappen();
cout <<"现在输出你输入的时间:" << Gday.SomeDate.year << "-" <
<< "-" << Gday.SomeDate.day<<" ";
show_week_day(Gday.OneDay);//add++
cout<
return 0;
}
DayDate WenDidIthappen()
{
DayDate gSomeDay;
cout << "输入日期:";
cin >> gSomeDay.SomeDate.year >> gSomeDay.SomeDate.month >>
gSomeDay.SomeDate.day;
gSomeDay.OneDay=(enum Day)Week_Day(gSomeDay);//add++
return gSomeDay;
}
/
switch(WOne_Day)
{
case Mday: cout<<"Mday";break;
case Tuday: cout<<"Tuday";break;
case Wday: cout<<"Wday";break;
case Tday: cout<<"Tday";break;
case Fday: cout<<"Fday";break;
case Sday: cout<<"Saday";break;
default: cout<<"Suday";
}
}
int Week_Day(DayDate OneDate)
{
int m_days[11]={31,28,31,30,31,30,31,31,30,31,30},i,w_day=0;
for(i=1;i
{
if((i%4==0&&i%100!=0)||i%400==0) w_day=(w_day+366)%7;
else w_day=(w_day+365)%7;
}
for(i=1;i
{
if(i==2&&((OneDate.SomeDate.year%4==0&&OneDate.SomeDate.year%100!=0)||OneDate.SomeDate.year%400==0)) w_day=(w_day+29)%7;
else w_day=(w_day+m_days[i-1])%7;
}
w_day+=OneDate.SomeDate.day;
return (w_day%7!=0)?(w_day%7):7;
}
其中有//ads++ 为我加进去的!!! 如运行过程中有什么问题可以给我百度消息.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! The End !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
全部回答
没看懂你想要什么,说具体一点
看样子是个万年历算法
某年某月某日 计算是 星期几
网上查查吧
会提问题,不会搜索么
- 3楼网友:独行浪子会拥风
- 2021-02-05 19:28
你好!
C 语言:
#include
#include
enum Day {Mday = 1, Tuday, Wday, Tday, Fday, Sday, Suday};
void main(){
enum Day anyday;
char sd[][4]={" ","Mon","Tue","Wed","Thu","Fri","Sat","Sun"};
printf("%s ",sd[anyday=Wday]);
}
C++ 依葫芦画瓢。
枚举的意思是
#define Mday 1
#define MTuday 2
#define .....
#define ... 7
直接输出枚举里常数是1,2,3,4,5,6,7
要打字符 "Mon" 要另想办法。char sd[][4] 就是一个办法。
打字不易,采纳哦!
我要举报
大家都在看
推荐资讯