已知日期求星期的程序,利用蔡勒公式求解
#includeh>
int main()
{ int year,month,day,a,b,c,d;
scanf("%d %d %d",&year,&month,&day);
a=year%10+year/10%10*10;
b=(year-year%10-year/10%10*10)/100;
if(month==1||month==2)
{
c=month+12;}
else
{
c=month;}
d=((a+a/4+b/4-2*b+(26*(c+1)))/10+day-1)%7;
printf("%d\n",d);
return 0;
}
with return value 3221225477
搜的是出现野指针,但是不知道怎么改
供参考:
#include <stdio.h>
int Get_Week(int y, int m, int d)
{
int week = -1;
if (m == 1 || m == 2) {
m += 12; y--;
}
week = (d + 2 * m + 3 * (m + 1) / 5 + y + y / 4 - y / 100 + y / 400) % 7;
return week;
}
int main()
{
int y, m, d;
char* week[7] = { "Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday" };
printf("请输入(年 月 日):");
scanf("%d %d %d", &y, &m, &d);
printf("%s", week[Get_Week(y, m, d)]);
return 0;
}
测试了一下,没毛病啊
输入2022 9 21,输出是3啊
你是不是代码修改了没保存啊。