黑色星期五怎么编程

时间:2025-01-28 13:11:39 网络游戏

要编写一个程序来判断某年是否有黑色星期五,并且如果有,输出具体的日期,你可以按照以下步骤进行:

输入年份:

首先,程序需要接收用户输入的年份。

判断闰年:

根据输入的年份判断是否为闰年,因为闰年2月有29天,平年2月有28天。

计算日期:

对于每个月的13号,计算该日期是星期几。

判断黑色星期五:

如果某个月的13号是星期五,则计数器加一。

输出结果:

最后,输出黑色星期五的个数和具体日期。

```c

include

// 判断是否为闰年

int isLeapYear(int year) {

return (year % 400 == 0) || (year % 4 == 0 && year % 100 != 0);

}

// 计算某年某月某日是星期几(蔡勒公式)

int getWeekDay(int year, int month, int day) {

int a = {13, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

if (isLeapYear(year)) {

a = 29;

}

int days = 0;

for (int y = 1998; y < year; y++) {

days += isLeapYear(y) ? 366 : 365;

}

for (int m = 1; m < month; m++) {

days += a[m];

}

days += day;

return (days - 1) % 7; // 星期四对应0,星期五对应1,...,星期日对应6

}

int main() {

int year, month, day, count = 0;

printf("请输入年份: ");

scanf("%d", &year);

for (month = 1; month <= 12; month++) {

day = 13;

if (getWeekDay(year, month, day) == 5) { // 星期五对应5

printf("%d年%d月%d日是黑色星期五\n", year, month, day);

count++;

}

}

if (count == 0) {

printf("该年没有黑色星期五\n");

}

return 0;

}

```

代码说明:

isLeapYear函数用于判断输入的年份是否为闰年。

getWeekDay函数使用蔡勒公式计算给定日期是星期几。

main函数接收用户输入的年份,并遍历每个月的13号,判断是否为星期五,并统计黑色星期五的个数。

你可以将上述代码复制到你的C语言编译器中进行编译和运行。