Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 用高斯算法计算星期几_C - Fatal编程技术网

C 用高斯算法计算星期几

C 用高斯算法计算星期几,c,C,我正在尝试创建一个程序,它将以三种不同的方式计算相同的日期。我目前一直在计算一周中的哪一天,因为我需要这个来计算ISO周中的哪一天。我有一个可以使用的算法,这就是我在代码中得到的算法,唯一的区别是代码中的%符号被算法中的单词“mod”替换了 当我运行此命令时,会出现一个错误,提示“在%token之前需要表达式”。我已经查过了,但没有找到任何结果。我也尝试过其他方法,找到了Sakomoto算法,但我不太明白它是如何工作的。对于一个可能的解决方案,我想我可能需要创建一个名为mod的函数,但我不完全确

我正在尝试创建一个程序,它将以三种不同的方式计算相同的日期。我目前一直在计算一周中的哪一天,因为我需要这个来计算ISO周中的哪一天。我有一个可以使用的算法,这就是我在代码中得到的算法,唯一的区别是代码中的%符号被算法中的单词“mod”替换了

当我运行此命令时,会出现一个错误,提示“在%token之前需要表达式”。我已经查过了,但没有找到任何结果。我也尝试过其他方法,找到了Sakomoto算法,但我不太明白它是如何工作的。对于一个可能的解决方案,我想我可能需要创建一个名为mod的函数,但我不完全确定需要在其中添加什么

int day_of_the_week(int year)
{
int week_day;
week_day = %(1+5 * %(year - 1, 4) + 4 * %(year - 1, 100) + 6 * %(year-1, 
400), 7);
printf("The day of the week is %d\n", week_day);
return 0;
}
高斯

R(1+5R(A-1,4)+4R(A-1100)+6R(A-1400),7)

应该相当于

int week_day = (1 + 5 * (year - 1) % 4) + 4 * ((year - 1) % 100) + 6 * ((year - 1) % 400) % 7;

看起来,
mod
是另一种语言中的函数。所以
%(第1100年)
变成
(第1年)%100
,等等,你不能简单地用
%
替换函数调用。谢谢!我刚刚读了一个链接,找到了一些与此类似的东西,去掉了一些括号