fork(12) download
  1. #include <stdio.h>
  2.  
  3. main()
  4. {
  5. int year, initial, n, month, day, i, j, Feb, count;
  6.  
  7. printf("輸入年份跟1/1是星期幾\n");
  8. scanf("%d",&year);
  9. scanf("%d",&initial);
  10. printf("輸入有幾組日期要算(n=1~10)\n");
  11. scanf("%d",&n);
  12. printf("輸入日期\n");
  13.  
  14. for (count=0 ; count<n; count++)
  15. {
  16. scanf("%d",&month);
  17. scanf("%d",&day);
  18.  
  19.  
  20. if (year%400==0||(year%4==0&&year%100!=0)) /*設定閏/平年時二月的天數*/
  21. Feb=29;
  22. else
  23. Feb=28;
  24.  
  25.  
  26. switch (month){ /*設定輸入的每個月份前面要加上幾天*/
  27. case 1:
  28. i=0; break;
  29. case 3:
  30. i=31 + Feb; break;
  31. case 5:
  32. i=31*2 + Feb +30; break;
  33. case 7:
  34. i=31*3 + Feb +30*2; break;
  35. case 8:
  36. i=31*4 + Feb +30*2; break;
  37. case 10:
  38. i=31*5 + Feb +30*3; break;
  39. case 12:
  40. i=31*6 + Feb +30*4; break;
  41.  
  42. case 2:
  43. i=31; break;
  44. case 4:
  45. i= Feb + 31*2 ; break;
  46. case 6:
  47. i= Feb + 31*3 + 30; break;
  48. case 9:
  49. i= Feb + 31*5 + 30*2; break;
  50. case 11:
  51. i= Feb + 31*6 + 30*3; break;
  52.  
  53. default:
  54. i=-1; break;
  55. }
  56.  
  57.  
  58.  
  59. if (0<day&&day<32) j= ((initial+i+day-1)%7); /*如果月份有錯輸出-2 日期有錯輸出-2*/
  60. else j=-2;
  61. if (month==2&&day==31) j= -2;
  62. if (month==4&&day==31) j= -2;
  63. if (month==6&&day==31) j= -2;
  64. if (month==9&&day==31) j= -2;
  65. if (month==11&&day==31) j= -2;
  66. if (Feb==28&&month==2&&day==29) j= -2;
  67.  
  68.  
  69. if (i==-1) printf("%d\n",i);
  70. else printf("%d\n",j);
  71.  
  72. }
  73.  
  74. return 0;
  75.  
  76. }
  77.  
Success #stdin #stdout 0s 2116KB
stdin
Standard input is empty
stdout
輸入年份跟1/1是星期幾
輸入有幾組日期要算(n=1~10)
輸入日期
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1