C语言题目求解

输入为某一年的年份,这一年1月1号的星期
请输出这一年中为星期五的所有5号

源程序如下:
#include<stdio.h>
void main()
{
int date(int year,int month,int day);
int year ,month,a;
printf("请输入年份:");
scanf("%d",&year);
printf("请输入该年第一天是星期:");//如果是星期天,请以7代替
scanf("%d",&a);
for(month=1;month<=12;month++)
{
if(month==1)
if(a+4==5)
printf("1月5号是星期五.\n");
if(month>=2)
if((date(year,month,5)-8+a)%7==5)
printf("%d月5号是星期五.\n",month);
}
}
int date(int year,int month,int day)
{
int a[12]={0,31,59,90,120,151,181,212,243,273,304,334};
int n;
switch(month)
{
case 1:n=a[0];break;
case 2:n=a[1];break;
case 3:n=a[2];break;
case 4:n=a[3];break;
case 5:n=a[4];break;
case 6:n=a[5];break;
case 7:n=a[6];break;
case 8:n=a[7];break;
case 9:n=a[8];break;
case 10:n=a[9];break;
case 11:n=a[10];break;
case 12:n=a[11];break;
default:printf("error");break;
}
n=n+day;
if(((year%4==0&&year%100!=0)||year%400==0)&&(month>2))
n++;
return n;
}
你可以这样测试数据,正好2008年第一天是星期二,日历显示9月5号和12月5号是星期5,试试就知道结果对不对了。date函数的作用是计算某年某月某日是该年的第几天。
温馨提示:答案为网友推荐,仅供参考