已经在这个任务工作了20多个小时,我理解人们出于某种原因从不想帮助完成家庭作业,但我确实没有得到任何地方,并且认为我至少会尝试并寻求帮助,因为我已经尝试过多个论坛无济于事。我的代码如下......
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int getdaycode(int month, int year);
void printheader(int month, int year);
int getndim(int month, int year);
int main()
{
int day, month, year, nummonths;
{
printf("Enter Month, Year, and Number of Months");
scanf("%d %d %d", &month, &year, &nummonths);
for (nummonths; nummonths < 13; nummonths++)
if (nummonths > 13)
year = year + 1;
printheader(month, year);
int numdays = getndim(month, year);
int daycode = getdaycode(month, year);
for (day = 1; day <= 1 + daycode * 4; day++)
printf(" ");
for (day = 1; day <= numdays; day++)
{
printf("%2d", day);
if ((day + daycode) % 7 > 0)
printf(" ");
else
printf("\n");
}
daycode = (daycode + numdays) % 7;
}
}
int getdaycode(int month, int year)
{
int numdays;
{
numdays = ((year - 1) * 365 + ((year - 1) / 4) - ((year - 1) / 100) + ((year - 1) / 400)); // how many days including exceptions
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) //check if leapyear
{
if (month == 1) // January
numdays = numdays;
if (month == 2) // February
numdays = numdays + 31;
if (month == 3) // March
numdays = numdays + 28 + 31 + 1;
if (month == 4) // April
numdays = numdays + 31 + 28 + 31 + 1;
if (month == 5) // May
numdays = numdays + 30 + 31 + 28 + 31 + 1;
if (month == 6) // June
numdays = numdays + 31 + 30 + 31 + 28 + 31 + 1;
if (month == 7) // July
numdays = numdays + 30 + 31 + 30 + 31 + 28 + 31 + 1;
if (month == 8) // August
numdays = numdays + 31 + 30 + 31 + 30 + 31 + 28 + 31 + 1;
if (month == 9) // September
numdays = numdays + 31 + 31 + 30 + 31 + 30 + 31 + 28 + 31 + 1;
if (month == 10) // October
numdays = numdays + 30 + 31 + 31 + 30 + 31 + 30 + 31 + 28 + 31 + 1;
if (month == 11) // November
numdays = numdays + 31 + 30 + 31 + 31 + 30 + 31 + 30 + 31 + 28 + 31 + 1;
if (month == 12) // December
numdays = numdays + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + 31 + 28 + 31 + 1;
}
else
{
if (month == 1) // January
numdays = numdays;
if (month == 2) // February
numdays = numdays + 31;
if (month == 3) // March
numdays = numdays + 28 + 31;
if (month == 4) // April
numdays = numdays + 31 + 28 + 31;
if (month == 5) // May
numdays = numdays + 30 + 31 + 28 + 31;
if (month == 6) // June
numdays = numdays + 31 + 30 + 31 + 28 + 31;
if (month == 7) // July
numdays = numdays + 30 + 31 + 30 + 31 + 28 + 31;
if (month == 8) // August
numdays = numdays + 31 + 30 + 31 + 30 + 31 + 28 + 31;
if (month == 9) // September
numdays = numdays + 31 + 31 + 30 + 31 + 30 + 31 + 28 + 31;
if (month == 10) // October
numdays = numdays + 30 + 31 + 31 + 30 + 31 + 30 + 31 + 28 + 31;
if (month == 11) // November
numdays = numdays + 31 + 30 + 31 + 31 + 30 + 31 + 30 + 31 + 28 + 31;
if (month == 12) // December
numdays = numdays + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + 31 + 28 + 31;
}
int daycode = numdays % 7;
switch (daycode)
{
case 0:
printf("Sunday\n");
break;
case 1:
printf("Monday\n");
break;
case 2:
printf("Tuesday\n");
break;
case 3:
printf("Wednesday\n");
break;
case 4:
printf("Thursday\n");
break;
case 5:
printf("Friday\n");
break;
case 6:
printf("Saturday\n");
break;
default: printf("unexpected error (daycode case) daycode = %d", daycode);
break;
}
return daycode;
}
}
void printheader(int month, int year)
{
printf("%14d %1d\n", month, year);
printf("Sun ");
printf("Mon ");
printf("Tue ");
printf("Wed ");
printf("Thu ");
printf("Fri ");
printf("Sat\n");
}
int getndim(int month, int year)
{
int numdays;
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) //check if leapyear
{
if (month == 1) // January
numdays = 31;
if (month == 2) // February
numdays = 29;
if (month == 3) // March
numdays = 31;
if (month == 4) // April
numdays = 30;
if (month == 5) // May
numdays = 31;
if (month == 6) // June
numdays = 30;
if (month == 7) // July
numdays = 31;
if (month == 8) // August
numdays = 31;
if (month == 9) // September
numdays = 30;
if (month == 10) // October
numdays = 31;
if (month == 11) // November
numdays = 30;
if (month == 12) // December
numdays = 31;
}
else
{
if (month == 1) // January
numdays = 31;
if (month == 2) // February
numdays = 28;
if (month == 3) // March
numdays = 31;
if (month == 4) // April
numdays = 30;
if (month == 5) // May
numdays = 31;
if (month == 6) // June
numdays = 30;
if (month == 7) // July
numdays = 31;
if (month == 8) // August
numdays = 31;
if (month == 9) // September
numdays = 30;
if (month == 10) // October
numdays = 31;
if (month == 11) // November
numdays = 30;
if (month == 12) // December
numdays = 31;
}
return numdays;
}
我想知道的是如何将我的getdaycode函数正确地调用到我的main函数中。此外,当这不是问题时,这一天一直显示在我的标题下方,并且它与乱七八糟的日历的排序混乱。这是我目前最大的两个问题,我真的很乐意与某人一起工作......真的很困惑......在你说回顾你的材料之前......我是一个全新的编程,没有背景,以及本课程没有任何来源,如书籍或网站可供参考。 (这使得它非常困难)。任何帮助都非常赞赏!
答案 0 :(得分:1)
int getndim(int month, int year)
{
int numdays;
//---whatever your code is
if(check condition)
{
if (month == 2)
numdays = 29;
}
return numdays;
}
答案 1 :(得分:0)
它可能对您有所帮助。
int main()
{
int day, month, year, nummonths;
printf("Enter Month, Year, and Number of Months");
scanf("%d %d %d", &month, &year, &nummonths);
if (nummonths > 12)
year = year + nummonths%12;
printheader(month, year);
int numdays = getndim(month, year);
int daycode = getdaycode(month, day, year);
for (day = 1; day <= numdays; day++)
{ printf("%4d", day);
if (day % 7 > 0)
printf("\t");
else
printf("\n");
}
}
但除了形成该特定问题的解决方案之外,您还需要处理一些可以帮助您的技能。
请选择一些图书和在线资源,并完成其中任何一项
1&GT;书: - 让我们c,通过: - balaguruswami
答案 2 :(得分:0)
int getdaycode(int month, int day, int year)
{
int numdays;
numdays = (whatever it is); // how many days including exceptions
if (month == 1)
numdays = numdays;
if (month == 2)
numdays = numdays + 31;
if (month == 3)
numdays = numdays + 28 + 31;
.
.
.
.
.
if (check condition ) //check if leapyear
{
if (month == 1 || month == 2) // January
numdays = numdays;
else
numdays = numdays +1;
}
int daycode = numdays % 7;
return daycode;
}
void printheader(int month, int year)
{
printf("\n\tSun ");
printf("\tMon ");
printf("\tTue ");
}