剰余 (あまり, residue)

何曜日クイズ

問題: 100 日後は何曜日ですか ?

getDay.c

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/*
  Program: getDay.c
  Comment: Residue for getDay
  Compiler Version: gcc-4.2
  Build It: gcc -Wall -O2 -o getDay getDay.c
  Runtime Environment: Snow Leopard 10.6.4
  Date: Sep 3rd, 2010
  Author: Fei Zhao
  All Rights Reserved
*/

#include <stdio.h>
#include <stdlib.h> /* exit() */

int main(int argc, char *argv[]){
  
  int num; /* 何日後? */

  char *day[] = { /* ポインタ配列 (配列の中に, アドレスがある) */
    "日", /* あまり: 0 */
    "月", /* あまり: 1 */
    "火", /* あまり: 2 */
    "水", /* あまり: 3 */
    "木", /* あまり: 4 */
    "金", /* あまり: 5 */
    "土"  /* あまり: 6 */
  };

  if(argc != 2){
    printf("Error...Usage: %s what's the days? \n", argv[0]);
    exit(0);
  }
  num = atoi(argv[1]);
  /* 周期は 7 であるために, 剰余を使って何曜日を確認できる */
  num %= 7;

  printf("%d 日後は \"%s曜日\" です. \n", atoi(argv[1]), day[num]);

  return 0;
}

getDay.c の実行結果は:

[cactus:~/code_c/math-for-p/residue]% ./getDay 10
10 日後は "水曜日" です.
[cactus:~/code_c/math-for-p/residue]% ./getDay 15
15 日後は "月曜日" です.
[cactus:~/code_c/math-for-p/residue]% ./getDay 20
20 日後は "土曜日" です.
[cactus:~/code_c/math-for-p/residue]% ./getDay 100
100 日後は "火曜日" です.

Table Of Contents

Previous topic

プログラマの数学

Next topic

再帰 (recursion)