summaryrefslogtreecommitdiff
path: root/1.2/friday.c
diff options
context:
space:
mode:
Diffstat (limited to '1.2/friday.c')
-rw-r--r--1.2/friday.c48
1 files changed, 48 insertions, 0 deletions
diff --git a/1.2/friday.c b/1.2/friday.c
new file mode 100644
index 0000000..c0b2ceb
--- /dev/null
+++ b/1.2/friday.c
@@ -0,0 +1,48 @@
+/*
+ID: mytbk921
+LANG: C
+TASK: friday
+*/
+
+#include <stdio.h>
+
+int isleap(int year)
+{
+ if (year%4==0 && (year%100!=0 || year%400==0))
+ return 1;
+ else
+ return 0;
+}
+
+const int DaysOfMonth[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};
+
+int main()
+{
+ int n; //years eclipsed
+ int year;
+ int nDays[7]={0}; //number of Sat. to Fri.
+ int wDay=2+12; //the week day,1900.01.01 is Monday(2)
+ int i;
+ FILE *fin=fopen("friday.in","r");
+ FILE *fout=fopen("friday.out","w");
+
+ fscanf(fin,"%d",&n);
+ for (year=1900;year<1900+n;year++){
+ int type=isleap(year);
+ for (i=0;i<12;i++){
+ wDay%=7;
+ nDays[wDay]++;
+ wDay+=DaysOfMonth[type][i];
+ }
+ }
+ for (i=0;i<7;i++){
+ if (i)
+ fputc(' ',fout);
+ fprintf(fout,"%d",nDays[i]);
+ }
+ fputc('\n',fout);
+ fclose(fin);
+ fclose(fout);
+ return 0;
+}
+