这是看的别人的方法,看了之后明白了很多啊。 查表倒是突然觉得很多地方都很有用啊,以前这里老是转不过弯. /* 一种计算机病毒叫黑色星期五,如果当天是13号,又恰好是星期五,就会发作起来毁球计 算机的存储系统,试编程找出九十年代中这种病毒可能发作的日期, 假设1990年1月1日为星期一。 */ #include <stdio.h> void main() { int pn[13]={0,31,59,90,120,151,181,212,243,273,304,334,365}; int rn[13]={0,31,60,91,121,152,182,213,244,274,305,335,366}; int i=1,j=1; int day = 5; for(i=1990; i <= 2000; i++) { if( i%4 == 0) { while(day <= 365) { if( (day - rn[j-1]) == 13) { printf("%d-%d-13/n",i,j); } day += 7; if(day > rn[j]) { j++; } } day%=366; j=1; } else { while(day <= 366) { if( (day - pn[j-1]) == 13) { printf("%d-%d-13/n",i,j); } day += 7; if(day > pn[j]) { j++; } } day%=365; j=1; } } }