用C++写一段程序,已知公元1年1月1日是星期一,计算输入的年月日是星期几?

作者&投稿:柏须 (若有异议请与网页底部的电邮联系)
C语言。求指教!请帮我写一下程序注释解释一下。已知公元1年1月1日是星期一。计算输入的年月日是星期几。~

int monthday[12]={0,31,59,90,120,151,181,212,243,273,304,334};//平常年份到该月1号之前共有多少天,1月1号之前0天 3月1号之前59天

int monthdayLeap[12]={0,31,60,91,121,152,182,213,244,274,305,335};//闰年到x月1号多少天
char * weekname[7]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};//是指针的数组,不是指针,数组的每个成员是一个指针指向星期几的英语,用于最后的输出
printf("Please input Year Month Day:");
scanf("%ld %ld %ld",&year,&month,&day);
totalday=(year-1)*365+(year-1)/4-(year-1)/100+(year-1)/400;//计算迄今为止每年365天一共多少天加上闰年的个数(每个闰年增加天,被4整除是闰年 被100整除的不是 被400整除的是)
if((year%4==0)&&(year%100!=0)||(year%400==0))
totalday+=monthdayLeap[month-1];
else
totalday+=monthday[month-1];
totalday+=day;
week=totalday%7;//总共的天数对7求模得到余数
printf("%ld,%s
",totalday,weekname[week]);
}

我只是刚学C语言,下面的程序仅供参考,上面的结果有问题。
int n=0; /*定义外部变量n*/
int year(int x)
{int i,y=0;
for(i=1;i<=x;i++)
{if(i%4==0&&i%100!=0||i%400==0)
{y++;
n=1;
}
else n=0;
}
return(y); /*y是计算出其中有多少个闰年,n是算出最后一年是不是闰年*/
}
int day_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int sum_day(int y,int y1,int m,int d)
{int i,day=0;
for(i=1;i<m;i++)
day+=day_tab[i];
day=day+d-1+(y1-1)*2+y; /*减1是减去了1月1日那一天,乘2是因为365除7余2*/
if(n==1&&m<3)
day--;
return(day);
}
#include
main()
{int year1,month1,day1,y,day,s;
printf("year/month/day:");
scanf("%d/%d/%d",&year1,&month1,&day1);
y=year(year1);
day=sum_day(y,year1,month1,day1);
s=day%7+1;
printf("%d/%d/%d=%d
",year1,month1,day1,s);
getchar(); /*两个getchar是为了运行后可看到结果*/
getchar();
}

下面是我刚编的程序,运行了一下,测试了几个数据,都是正确的。下面是程序:
#include <iostream>

using namespace std;

int leapYear(int year);
int main()
{
cout << "请先输入年份,再输入月份,最后输入日期,中间以空格或换行符间隔,如:2010 6 13" << endl;
long a, b, c;//a为年份,b为月份,c为日期

cin >> a >> b >> c;
int i, result = 0;
for(i=1;i<=a-1;i++)
{
result+=(leapYear(i)+365)%7;
}
for(i=1;i<=b-1;i++)
{
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
{
result+=31%7;
result%=7;
}
else if(i==4||i==6||i==9||i==11)
{
result+=30%7;
result%=7;
}
else if(i==2)
{
result+=(28+leapYear(a))%7;
result%7;
}
}
result+=c%7;
result%=7;
if(result==0)
result = 7;
cout << "今儿是星期" << result << endl;
return 0;
}

//判断是否为闰年,若为闰年返回1(366天),反之,返回0(365天).
int leapYear(int year)
{
if(year%400==0 || year%100!=0 && year%4==0)
return 1;
else
return 0;
}
希望能对你有帮助。


如何用c语言编译一段程序?
1 输入一个数,保存为最大的数。2 依次输出剩余9个数,并与最大数比较,如新输入的更大,则替换其值为最大数。3 输出最大数。代码:include <stdio.h>int main(){ int n,max, i; scanf("%d", &max);\/\/第一个数。 for(i = 1; i < 10; i ++)\/\/剩余九个数。 { ...

如何用c语言编译执行一段程序?
public static void main(Strign []args){ int x=2,y=4,z=3;System.out.println(x>y&&z>y);}

用C语言编写一段程序,要求:输入一段字符,分别统计出其中的英文字母、空...
include <stdio.h>#include <conio.h>#define LEN 50int main (void) {char str[LEN];char *p = str;char cap[LEN], low[LEN], num[LEN], space[LEN], oth[LEN]; \/*分类存储字符*\/int capCnt, lowCnt, numCnt, spaceCnt, othCnt; \/*分类计数*\/capCnt = lowCnt = numCnt = s...

c语言如何编写一段计算平均值的程序?
c++语言:include<iostream> using namespace std;int main(){int n;int i,m,sum;double ave;cout<<"how many numbers do you want to do average?";cin>>n;for(i=0;i<n;i++){cin>>m;sum+=m;} ave=sum\/n;cout<<"The average of these "<<n<<" numbers is:"<<ave<<endl;...

如何用c语言编写一个程序?
include<stdio.h> int main(){ int i,m=0;for(i=2;i<=100;i+=2) m=m+i;printf("%d\\n",m);return 0;} 或 include int main(){ int i,sum=0;for(i=1;i<=50;i++){ sum=sum+2*i;} printf("2+4+6+…+98+100=%d\\n",sum);return 0;} ...

如何编写C语言程序?
1.打开桌面上的DEV_C++,进入如下界面:2.快捷键“CTRL+N”建立新源代码。3.输入源代码,下面给出最简单的Hello,world源代码:include <stdio.h> int main( ){ printf("Hello,World\\n");return 0;} 4.按下F11编译并且运行源代码,得到运行结果:5.点击任意键返回源代码编辑界面可以继续进行开发...

用c语音编写一段程序计算摄氏温度换算成华氏温度。
程序如下:include <stdio.h> void main(){ float F,C;printf("请输入您需要转换的摄氏温度:");scanf("%f",&C);F = (C+32)*9\/5.0;printf("其对应的华氏温度为:%.2f \\n",F);}

用C语言编写一个简单程序,有哪些步骤,可以举一个例子详细讲解下吗?_百 ...
\/\/先使用编辑工具如windows的记事本或vc++环境,或linux的vim编辑器创建一个hello.c文件 \/\/打开文件后,如下 步骤写程序 include <stdio.h>\/\/首先要引入c语言的标准输入输出库文件,因为这个文件里有已经定义好的可以使用的函数 \/\/接下来需要写一个main函数,这也是c语言程序里必不可少的一个函数,...

c语言一小段程序求解
include "stdio.h"\/\/包含输入输出头文件,printf就在其中main(){ int x1=0xabc,x2=0xdef;\/\/声明x1、x2为有符号整型变量并用十六进制赋初值 x2-=x1;\/\/用x2的值减去x1的值并将结果赋给x2 printf("%x\\n",x2);\/\/用十六进制输出x2的值}结果是十六进制333,即十进制的819。

用C语言编写一个简单程序,有哪些步骤,可以举一个例子详细讲解下吗?_百 ...
include<stdio> \/\/这个是头文件 也是 C语言里面最常用的头文件之一 int main()\/\/这个是主函数 也就是程序的入口 你写的程序就是从这里开始的 { \/\/这个 { }表示里面的范围 是必须的 跟main 主函数是不可分的 int a=2; \/\/这里表示有一个 int型的数据a(int型就是整数...

侯马市17361473252: 用C++写一段程序,已知公元1年1月1日是星期一,计算输入的年月日是星期几? -
荣童优维: 下面是我刚编的程序,运行了一下,测试了几个数据,都是正确的.下面是程序:#include using namespace std;int leapYear(in...

侯马市17361473252: 我刚学C++ 有个很简单的小程序...有点困难..编写一个程序,只要输入年月日,就能回答那天是星期几 -
荣童优维: 这个程序太多了,随便帮你找一个:---输入年,月,日:2000,3,1 答: 2000年3月1日是星期三. ---输入年,月,日:2008,4,20 答: 2008年4月20日是星期日. ---输入年,月,日:0 年月日数字用逗号隔开. 想结束的时候输入一个0就可以了. int ...

侯马市17361473252: c++输入日期 计算公元1年1月1日到这天的天数 -
荣童优维: # include <stdio.h> void main(){int a,b,c,i,j,k,d=0,e=0,m;printf ("请输入日期 格式为 2013 4 25\n");scanf("%d%d%d",&a,&b,&c);for (i=1;i<a;i++)if (a%4==0&&a%100!=0||a%400==0)d=d+366;else d=d+365;if (a%4==0&&a%100!=0||a...

侯马市17361473252: C++编写年历!!!急求!急! -
荣童优维: #include using namespace std; class Data { private:int year;// int monthdays[N]; public:void getyear(); //提示用户输入想要查询的年份int ioleapyear(); //判断该年是不是闰年int weekday(); //判断该年的元旦是星期几 // void setweek...

侯马市17361473252: c++的一道题...已知1900年1月1日是星期一, 输入n, 编程求自该日期开始的第n天的年月日及星期 -
荣童优维: 第一个do~while和第二个do~while循环的逻辑就有错误.以n==1为例说明:进入第一个do后,由于1900不是闰年,所以everyear==365,n=n-everyear;使n==-364,因n<0而结束循环;进入第二个do后n=n-evermonth;使n==-364-31(或30或29或28)结果是个负数,因而第二个do~while循环也退出.这时day=n;使day获得了一个近400的负数,后面输出自然不可能正确……第一个循环里的year的计算也是错的,已经i++了,还来个year=i+1;,这一次就增加了两年……

侯马市17361473252: C++,,,课堂作业求助,,,编写一个程序,,计算自己的生日距离今天多少天,,是星期几 -
荣童优维: /* date.h *//* 定义和实现日期类 Microsoft Visual C++ .NET编译通过 */ #include "time.h" #include "iostream" using namespace std;class date{ public:date();date(int year,int month,int day);int ydays() const;int get_day() const;int get_...

侯马市17361473252: 用C++编写程序,输入一个公元年号,输出该年是否是闰年 -
荣童优维: 我学习C++时,写过一个判断某年某月是星期几的程序中有这一段,一同发给你,你可能感兴趣.如果需要把判断输出该年是否是闰年代码提取出来,你告诉我一下.#include<iostream.h>const short MonthDay[]={0,31,28,31,30,31,30,31,31,30,...

侯马市17361473252: 怎样用C++设计一个输入年月日来确定星期几的程序啊? -
荣童优维: #include<iostream> #include<stdio.h> using namespace std; int main() {int year;int month;int monthcodearr[12]={1,4,4,7,2,5,7,3,6,1,4,6};char week[7][10]={"星期日","星期一","星期二","星期三","星期四","星期五","星...

侯马市17361473252: 编写一个程序,只要输入年月日,就能回答那天是星期几[实验提示]1、已知公元1 年1 月1 日是星期一2、算法提示:如果输入的是2006 年3 月12 日,计算方... -
荣童优维:[答案] #include /* 检验该年是否为闰年 */bool Leap(int year){ if((year%4==0 && year%100!=0 )||(year%400==0)) return true; else return false;}int Day(int y,int m,int d){ int i,n=1; /* 计算该年份(如2010年)1...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网