用c语言编一个程序判断黑色星期五的方法如下:
需要设立一个初始点,比方说设定1900年1月1日为初始点,然后依次按7天计算这样就可以同时判断之后的某天是星期几了。然后重叠上那一天是几号就可以用一个if(day==星期五&&day==13号)判断来输出是黑色星期五了,具体的代码可以自己写出来,可以加入当时英国划去了几天的那个事件。
黑色星期五,在西方,星期五和数字13都代表着坏运气,两个不幸的个体最后结合成超级不幸的一天。所以,不管哪个月的十三日又恰逢星期五就叫“黑色星期五”。
输入:年份。
输出:判断该年是否包含黑色星期五,如包含,给出具体日期。
#include <stdio.h>int normalMonth[12] = {31,28,31,30,31,30,31,31,30,31,30,31}
int leapMonth[12] = {31,29,31,30,31,30,31,31,30,31,30,31}
int getYear(void)
{
int n
printf("please input year:")
scanf("%d",&n)
return n
}
int isLeap(int n)
{
if((n%4==0&&n%100!=0)||n%400==0)
{
return 366
}
else
{
return 365
}
}
int weekDays(int year)
{
int i,sum = 0
for(i = 2008i<yeari++)
{
sum += isLeap(i)
}
if(sum == 0)
{
sum = 0
}
else
{
sum = sum%7
}
switch (sum)
{
case 0:
return 3
break
case 1:
return 4
break
case 2:
return 5
break
case 3:
return 6
break
case 4:
return 7
break
case 5:
return 1
break
case 6:
return 2
break
default:
return -10000
}
}
void darkFriday(int weekday,int year)
{
int week = weekday,i,j,sum = 0
if(366==isLeap(year))
{
for(i=0i<12i++)
{
for(j=1j<=leapMonth[i]j++)
{
week++
if(week == 8)
{
week = 1
}
if(week == 5&&j == 13)
{
sum ++
}
}
}
}
else
{
for(i=0i<12i++)
{
for(j=1j<=normalMonth[i]j++)
{
week++
if(week == 8)
{
week = 1
}
if(week == 5&&j == 13)
{
sum ++
}
}
}
}
printf("%d\n",sum)
}
int main(void)
{
int year,weekday
year = getYear()
weekday = weekDays(year)
darkFriday(weekday,year)
return 0
}
可能不对,你看看吧。楼上的可能更好。