c语言问题--日历

来源:百度知道 编辑:UC知道 时间:2024/05/12 14:07:58
输出日历 编写程序,用户输入年份和这一年的第一天是星期几,输出每个月的最后一天是星期几。例如,如果用户输入2005和6,表示2005年1月1日是星期六,程序输出如下内容(注意,要严格按照示例输出结果,同时不要输出任何提示符):
January 31, 2005 is Monday
February 28, 2005 is Monday
March 31, 2005 is Thursday
April 30, 2005 is Saturday
May 31, 2005 is Tuesday
June 30, 2005 is Thursday
July 31, 2005 is Sunday
August 31, 2005 is Wednesday
September 30, 2005 is Friday
October 31, 2005 is Monday
November 30, 2005 is Wednesday
December 31, 2005 is Saturday

The output of invalid input is "Invalid Input"

这是我的作业题
我的思路如下
情况分两类非闰年和闰年。每个月最后一天的星期数规律性 比如说3.6.9月的最后一天星期是一样 ,将输出的信息分为两部分 月份和日期定义为一个二维数组 然后定义一个判断星期的函数 利用规律性 简化判断
7点就要交作业了我的程序改了又改总是很多错误
基础不是很好 没法独立完成
大侠们帮忙 谢谢了(留意下输出输入要求)
急···在线等 只有10分··否则要高分求助的0.0
2个程序都有问题 第一个程序直接死掉了
第二个在判断星期的时候有问题···
你可以自己试一下 输出都星期都是一样的··

#include<stdio.h>
void main()
{
long int y;
int f;
int i;
int days(int yue,int nian);
int leap(long int l);
void month(int x);
void day(int y,int z);
void year(long int n);
void week(int ye,int a,int mon);
printf("please input a year and tell me that the firstday of the year is the day of the week:");
scanf("%ld%d",&year,&f);
if(f<1||f>7)printf("\nthe day of the week is Invalid Input");
for(i=1;i<=12;i++)
{
printf("\n");
month(i);
day(y,i);
year(y);
week(y,f,i);
}
}
int leap(long int l)
{
if(l%4==0&&l%100!=0||l%400==0)return(1);
else return(0);
}
void month(int x)
{
if(x==1)printf("January ");
if(x==2)printf("February ");
if(x==3)printf("March ");
if(x==4)printf("April ");
if(x==5