我明天要去参加一些辅导,但我想看看能不能在这里得到解释。试图问我类的一个 friend ,但解释没有意义。
我应该以包含日、月和年的结构形式接受用户的输入。
这是我现在真正拥有的一切:
enum month
{
JAN = 1, FEB, MAR, APR, MAY, JUNE, JUL, AUG, SEPT,
OCT, NOV, DEC
};
struct date_t
{
unsigned short month;
unsigned short day;
unsigned short year;
};
int main(void)
{
date_t date; /*Allocates space for 3 unsigned shorts,
all for the date*/
printf("Please enter the month as an integer: \n");
scanf("%hu");
printf("Please enter the day as an integer: \n");
scanf("%hu");
printf("Please enter the year as an integer: \n");
scanf("%hu");
return 0;
}
所以,这是我的问题。
我可以为月份 + 星座组合的每个案例编写一个绝对庞大的 12x12(144 个选项)switch 语句,但这只是精神错乱。我真的不知道在这里做什么。
这个想法是如果用户输入:
8 (month)
28 (day)
12 (year)
我的程序应该输出:
August 28th, 2012, Virgo
主要问题是我们还没有学会将字符串存储为变量的方法。我们已经完成了。
所以我可以用 12 个案例(每个月一个)创建一个 switch 语句,并给每个案例一个不同的“printf”语句 ("月 %d, %d", date.day, date.year)
但是那我怎么算生肖呢?还有,那是 12 个案例,感觉有点荒谬。
我的老师提出了一些关于转换为 Julian 日期的建议,我几乎明白了如何做,但似乎我需要一个非常复杂的 for 循环,里面有一个 switch 语句或一堆 if/elses。
我究竟做错了什么?什么是更简单的解决方案?
编辑:
我设法解决了 2/3 的问题。现在我遇到了一个不同的人。
我需要处理闰年(不管是什么意思)并找到它们的符号。啊。
编辑 2:想通了!希望我能向您展示所有代码,而不会使这篇文章冗长得离谱。它虽然有效!很高兴!现在我需要为它制作一个菜单系统。 ;-;
最佳答案
我想你在想你必须做一个打印语句来一次打印整行,但你可以有多个打印语句,每个只打印部分行。
由于这是一个学习练习,我不想透露太多,但我知道您可以像这样打印您的答案:
printf("August ");
printf("28th, ");
printf("2012, ");
printf("Virgo");
printf("\n");
关于c - 如果没有大量 12x12 switch 语句,我该如何处理日历?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32918699/