解 答 編 第 4 章 条 件 による 分 岐 2 演 習 問 題 4.2 整 数 値 を 入 力 すると その 整 数 が 偶 数 か 奇 数 かを 答 えるプログラムを 作 りなさい ただし 1 ) if else 文 を 用 いて 作 ること この 問 題 は 本 当 に 簡 単 です しかし

Similar documents

WEB版「新・相続対策マスター」(ご利用の手引き)

1

している 5. これに 対 して 親 会 社 の 持 分 変 動 による 差 額 を 資 本 剰 余 金 として 処 理 した 結 果 資 本 剰 余 金 残 高 が 負 の 値 となるような 場 合 の 取 扱 いの 明 確 化 を 求 めるコメントが 複 数 寄 せられた 6. コメントでは 親

( 別 途 調 査 様 式 1) 減 損 損 失 を 認 識 するに 至 った 経 緯 等 1 列 2 列 3 列 4 列 5 列 6 列 7 列 8 列 9 列 10 列 11 列 12 列 13 列 14 列 15 列 16 列 17 列 18 列 19 列 20 列 21 列 22 列 固 定

Q IFRSの特徴について教えてください

養 老 保 険 の 減 額 払 済 保 険 への 変 更 1. 設 例 会 社 が 役 員 を 被 保 険 者 とし 死 亡 保 険 金 及 び 満 期 保 険 金 のいずれも 会 社 を 受 取 人 とする 養 老 保 険 に 加 入 してい る 場 合 を 解 説 します 資 金 繰 りの 都

取 り 消 された 後 当 該 産 前 の 休 業 又 は 出 産 に 係 る 子 若 しくは 同 号 に 規 定 する 承 認 に 係 る 子 が 死 亡 し 又 は 養 子 縁 組 等 により 職 員 と 別 居 することとなったこと (2) 育 児 休 業 をしている 職 員 が 休 職 又

<4D F736F F D E718CF68D C768E5A8F9197DE>

(1)1オールゼロ 記 録 ケース 厚 生 年 金 期 間 A B 及 びCに 係 る 旧 厚 生 年 金 保 険 法 の 老 齢 年 金 ( 以 下 旧 厚 老 という )の 受 給 者 に 時 効 特 例 法 施 行 後 厚 生 年 金 期 間 Dが 判 明 した Bは 事 業 所 記 号 が

2 条 ) ア 育 児 休 業 の 対 象 とならない 職 員 ( 法 第 2 条 及 び 条 例 第 2 条 関 係 ) (ア) 臨 時 的 に 任 用 される 職 員 (イ) 育 児 休 業 に 係 る 期 間 を 任 期 と 定 めて 採 用 された 職 員 (ウ) 勤 務 延 長 職 員 (

第4回税制調査会 総4-1

東近江行政組合職員の育児休業等に関する条例

目 次 1 報 酬 給 与 額 事 例 1 報 酬 給 与 額 に 含 める 賞 与 の 金 額 が 誤 っていた 事 例 1 事 例 2 役 員 退 職 金 ( 役 員 退 職 慰 労 金 )を 報 酬 給 与 額 として 申 告 して いなかった 事 例 1 事 例 3 持 株 奨 励 金 を

代 議 員 会 決 議 内 容 についてお 知 らせします さる3 月 4 日 当 基 金 の 代 議 員 会 を 開 催 し 次 の 議 案 が 審 議 され 可 決 承 認 されました 第 1 号 議 案 : 財 政 再 計 算 について ( 概 要 ) 確 定 給 付 企 業 年 金 法 第

Ⅰ 調 査 の 概 要 1 目 的 義 務 教 育 の 機 会 均 等 その 水 準 の 維 持 向 上 の 観 点 から 的 な 児 童 生 徒 の 学 力 や 学 習 状 況 を 把 握 分 析 し 教 育 施 策 の 成 果 課 題 を 検 証 し その 改 善 を 図 るもに 学 校 におけ

Microsoft PowerPoint - 報告書(概要).ppt

弁護士報酬規定(抜粋)

為 が 行 われるおそれがある 場 合 に 都 道 府 県 公 安 委 員 会 がその 指 定 暴 力 団 等 を 特 定 抗 争 指 定 暴 力 団 等 として 指 定 し その 所 属 する 指 定 暴 力 団 員 が 警 戒 区 域 内 において 暴 力 団 の 事 務 所 を 新 たに 設

( 別 紙 ) 以 下 法 とあるのは 改 正 法 第 5 条 の 規 定 による 改 正 後 の 健 康 保 険 法 を 指 す ( 施 行 期 日 は 平 成 28 年 4 月 1 日 ) 1. 標 準 報 酬 月 額 の 等 級 区 分 の 追 加 について 問 1 法 改 正 により 追 加

スライド 1

1. 前 払 式 支 払 手 段 サーバ 型 の 前 払 式 支 払 手 段 に 関 する 利 用 者 保 護 等 発 行 者 があらかじめ 利 用 者 から 資 金 を 受 け 取 り 財 サービスを 受 ける 際 の 支 払 手 段 として 前 払 式 支 払 手 段 が 発 行 される 場 合

2016 年 度 情 報 リテラシー 三 科 目 合 計 の 算 出 関 数 を 用 いて 各 教 科 の 平 均 点 と 最 高 点 を 求 めることにする この2つの 計 算 は [ホーム]タブのコマ ンドにも 用 意 されているが 今 回 は 関 数 として 作 成 する まず 表 に 三 科

った 場 合 など 監 事 の 任 務 懈 怠 の 場 合 は その 程 度 に 応 じて 業 績 勘 案 率 を 減 算 する (8) 役 員 の 法 人 に 対 する 特 段 の 貢 献 が 認 められる 場 合 は その 程 度 に 応 じて 業 績 勘 案 率 を 加 算 することができる


<4D F736F F D20834C D815B8C768E5A8F912E646F6378>

2016 年 度 情 報 リテラシー 変 更 された 状 態 同 様 に 価 格 のセルを 書 式 設 定 する 場 合 は 金 額 のセルをすべて 選 択 し [ 書 式 ]のプルダウンメニューか ら[ 会 計 ]を 選 択 する すると が 追 加 され 金 額 としての 書 式 が 設 定 さ

税金読本(8-5)特定口座と確定申告

給与R4 年末調整のポイント

<4D F736F F D D3188C091538AC7979D8B4B92F F292B98CF092CA81698A94816A2E646F63>

Taro-1-14A記載例.jtd

2 役 員 の 報 酬 等 の 支 給 状 況 平 成 27 年 度 年 間 報 酬 等 の 総 額 就 任 退 任 の 状 況 役 名 報 酬 ( 給 与 ) 賞 与 その 他 ( 内 容 ) 就 任 退 任 2,142 ( 地 域 手 当 ) 17,205 11,580 3,311 4 月 1

Microsoft Word - 第3章.doc

就 業 規 則 ( 福 利 厚 生 ) 第 章 福 利 厚 生 ( 死 亡 弔 慰 金 等 ) 第 条 法 人 が 群 馬 県 社 会 福 祉 協 議 会 民 間 社 会 福 祉 施 設 等 職 員 共 済 規 程 に 基 づき 群 馬 県 社 会 福 祉 協 議 会 との 間 において 締 結 す

特別徴収封入送付作業について

平成21年9月29日

(3) 小 単 元 の 指 導 と 評 価 の 計 画 小 単 元 第 11 章 税 のあらまし の 指 導 と 評 価 の 計 画 ( 四 次 確 定 申 告 制 度 抜 粋 ) 関 心 意 欲 態 度 思 考 判 断 技 能 表 現 知 識 理 解 小 単 元 の 評 価 規 準 税 に 関 す

年齢別人数計算ツールマニュアル

原 則 として 事 業 主 は 従 業 員 から 扶 養 控 除 等 申 告 書 の 提 出 を 受 けた 後 に 給 与 の ( 事 業 主 )の 番 号 を 記 載 しなければならない ただし 事 業 主 が 人 の 場 合 には 人 番 号 は 一 般 に 公 表 されている 番 号 であるた

Taro-役員退職手当規程(H27.10改正)HP版

答申第585号

のとする 3 この 協 会 での 会 員 の 身 分 は 国 際 協 同 組 合 保 険 連 合 の 身 分 と 同 様 とする 4 いかなる 会 員 組 織 も 国 際 協 同 組 合 保 険 連 合 の 会 員 資 格 を 喪 失 した 場 合 には 協 会 の 会 員 資 格 を 喪 失 する

公営住宅法施行令の一部を改正する政令―公営住宅法施行令例規整備*

給 与 所 得 控 除 所 得 税 の 簡 易 給 与 所 得 表 により 給 与 所 得 の 金 額 を 求 めますが 控 除 額 の 計 算 については 次 のとおりです 給 与 等 の 収 入 金 額 給 与 所 得 控 除 額 180 万 円 以 下 の 場 合 180 万 円 を 超 え

リング 不 能 な 将 来 減 算 一 時 差 異 に 係 る 繰 延 税 金 資 産 について 回 収 可 能 性 がないも のとする 原 則 的 な 取 扱 いに 対 して スケジューリング 不 能 な 将 来 減 算 一 時 差 異 を 回 収 できることを 反 証 できる 場 合 に 原 則

Microsoft Word sozei-sample1.doc

損 益 計 算 書 自. 平 成 26 年 4 月 1 日 至. 平 成 27 年 3 月 31 日 科 目 内 訳 金 額 千 円 千 円 営 業 収 益 6,167,402 委 託 者 報 酬 4,328,295 運 用 受 託 報 酬 1,839,106 営 業 費 用 3,911,389 一

(4) ラスパイレス 指 数 の 状 況 ( 各 年 4 月 1 日 現 在 ) ( 例 ) ( 例 ) 15 (H2) (H2) (H24) (H24) (H25.4.1) (H25.4.1) (H24) (H24)

23信託の会計処理に関する実務上の取扱い

注 雇 促 進 税 制 と 本 制 度 のどちらかを 利 する 可 能 性 があるが あらかじめどちらの 制 度 を 利 するか 判 断 できない という 場 合 雇 促 進 税 制 の 事 前 届 出 ( 雇 促 進 計 画 の 提 出 )をした 上 で 申 告 の 際 にどちらを 利 するかご

1. 決 算 の 概 要 法 人 全 体 として 2,459 億 円 の 当 期 総 利 益 を 計 上 し 末 をもって 繰 越 欠 損 金 を 解 消 しています ( : 当 期 総 利 益 2,092 億 円 ) 中 期 計 画 における 収 支 改 善 項 目 に 関 して ( : 繰 越

定 性 的 情 報 財 務 諸 表 等 1. 連 結 経 営 成 績 に 関 する 定 性 的 情 報 当 第 3 四 半 期 連 結 累 計 期 間 の 業 績 は 売 上 高 につきましては 前 年 同 四 半 期 累 計 期 間 比 15.1% 減 少 の 454 億 27 百 万 円 となり

2. ど の 様 な 経 緯 で 発 覚 し た の か ま た 遡 っ た の を 昨 年 4 月 ま で と し た の は 何 故 か 明 ら か に す る こ と 回 答 3 月 17 日 に 実 施 し た ダ イ ヤ 改 正 で 静 岡 車 両 区 の 構 内 運 転 が 静 岡 運


平成16年度

< E8BE08F6D2082C682B DD2E786C7378>


kyoukai.indd

< E95FB8CF689638AE98BC689FC90B390A CC8CA992BC82B582C982C282A282C E90E096BE8E9E8E9197BF2E786477>

質 問 票 ( 様 式 3) 質 問 番 号 62-1 質 問 内 容 鑑 定 評 価 依 頼 先 は 千 葉 県 などは 入 札 制 度 にしているが 神 奈 川 県 は 入 札 なのか?または 随 契 なのか?その 理 由 は? 地 価 調 査 業 務 は 単 にそれぞれの 地 点 の 鑑 定

資料 厚生年金基金の今後の方向性について.PDF

定款  変更

1 変更の許可等(都市計画法第35条の2)

Taro-H19退職金(修正版).jtd

Microsoft PowerPoint - 基金制度

計算式の取り扱い

調 査 概 要 調 査 名 : 住 宅 購 入 に 関 する 意 識 調 査 調 査 主 体 : 株 式 会 社 オープンハウス 調 査 対 象 : 1 現 在 東 京 23 区 内 の 賃 貸 住 宅 に 居 住 していて 初 めての 住 宅 購 入 を 検 討 している 30 代 ~40 代 既

PTA

(問)被用者保険の被扶養者に対する2年間の経過措置になる軽減額は、他の被保険者の保険料で補填すると考えてよいのか

(現行版)工事成績書と評定表をあわせた_docx

財政再計算結果_色変更.indd

年 金 払 い 退 職 給 付 制 度 における 年 金 財 政 のイメージ 積 立 時 給 付 時 給 付 定 基 (1/2) で 年 金 を 基 準 利 率 で 付 利 給 付 定 基 ( 付 与 利 の ) 有 期 年 金 終 身 年 金 退 職 1 年 2 年 1 月 2 月 ( 終 了 )

国 税 クレジットカード 納 付 の 創 設 国 税 のクレジットカード 納 付 については マイナンバー 制 度 の 活 用 による 年 金 保 険 料 税 に 係 る 利 便 性 向 上 に 関 するアクションプログラム( 報 告 書 ) においてその 導 入 の 方 向 性 が 示 されている

<4D F736F F D AC90D1955D92E CC82CC895E DD8C D2816A2E646F63>

第1章 簿記の一巡

<4D F736F F D20D8BDB8CFC8BCDED2DDC482A882E682D1BADDCCDFD7B2B1DDBD8B4B92F E646F63>

4-3-4共立蒲原総合病院組合職員の育児休業等に関する条例

損 益 計 算 書 ( 自 平 成 25 年 4 月 1 日 至 平 成 26 年 3 月 31 日 ) ( 単 位 : 百 万 円 ) 科 目 金 額 営 業 収 益 75,917 取 引 参 加 料 金 39,032 上 場 関 係 収 入 11,772 情 報 関 係 収 入 13,352 そ

「節電に対する生活者の行動・意識

(別紙3)保険会社向けの総合的な監督指針の一部を改正する(案)

注 記 事 項 (1) 当 四 半 期 連 結 累 計 期 間 における 重 要 な 子 会 社 の 異 動 : 無 (2) 四 半 期 連 結 財 務 諸 表 の 作 成 に 特 有 の 会 計 処 理 の 適 用 : 有 ( 注 ) 詳 細 は 添 付 資 料 4ページ 2.サマリー 情 報 (

事 業 税 の 外 形 標 準 課 税 事 業 税 は 都 道 府 県 が 所 得 ( 利 益 )に 対 して 課 税 します 1. 個 人 事 業 税 業 種 区 分 税 率 ( 標 準 税 率 ) 第 1 種 事 業 ( 物 品 販 売 業 製 造 業 金 銭 貸 付 業 飲 食 店 業 不 動

Microsoft Word - T2-09-1_紙上Live_独自給付_①_12分_

1_2013BS(0414)

任意整理について | 多重債務Q&A | 公益財団法人 日本クレジットカウンセリング協会

Taro-2220(修正).jtd

Microsoft Word - 佐野市生活排水処理構想(案).doc

22 第 1 章 資 本 金 等 利 益 積 立 金 貴 見 のとおり 資 本 等 取 引 は 本 来 は 増 資 とか 減 資 と か さらには 旧 資 本 積 立 金 額 の 増 加 または 減 少 をいうこと になる ただ 利 益 の 配 当 はいわゆる 資 本 金 等 取 引 である か 損

2 県 公 立 高 校 の 合 格 者 は このように 決 まる (1) 選 抜 の 仕 組 み 選 抜 の 資 料 選 抜 の 資 料 は 主 に 下 記 の3つがあり 全 高 校 で 使 用 する 共 通 の ものと 高 校 ごとに 決 めるものとがあります 1 学 力 検 査 ( 国 語 数

c. 投 資 口 の 譲 渡 に 係 る 税 務 個 人 投 資 主 が 投 資 口 を 譲 渡 した 際 の 譲 渡 益 は 株 式 等 に 係 る 譲 渡 所 得 等 として 原 則 20%( 所 得 税 15% 住 民 税 5%)の 税 率 による 申 告 分 離 課 税 の 対 象 となりま

目 次 ( 資 産 の 部 金 融 資 産 ) 1. 資 金 4 1 資 金 明 細 台 帳 ( 資 産 負 債 整 簿 ) 5 2 資 金 の 明 細 台 帳 ( 付 属 明 細 表 ) 5 2. 税 等 未 収 金 6 3 債 権 債 務 整 台 帳 ( 資 産 負 債 整 簿 ) 6 4 当

平成16年年金制度改正 ~年金の昔・今・未来を考える~

議案第   号

件名

論点整理② 利用目的の範囲の考え方

<4D F736F F D CC E82CC8E9E89BF955D89BF82CC8AEE8F E20322E32202E646F63>

検 討 検 討 の 進 め 方 検 討 状 況 簡 易 収 支 の 世 帯 からサンプリング 世 帯 名 作 成 事 務 の 廃 止 4 5 必 要 な 世 帯 数 の 確 保 が 可 能 か 簡 易 収 支 を 実 施 している 民 間 事 業 者 との 連 絡 等 に 伴 う 事 務 の 複 雑

3 独 占 禁 止 法 違 反 事 件 の 概 要 (1) 価 格 カルテル 山 形 県 の 庄 内 地 区 に 所 在 する5 農 協 が, 特 定 主 食 用 米 の 販 売 手 数 料 について, 平 成 23 年 1 月 13 日 に 山 形 県 酒 田 市 所 在 の 全 国 農 業 協

第 7 条 職 員 の 給 与 に 関 する 規 程 ( 以 下 給 与 規 程 という ) 第 21 条 第 1 項 に 規 定 す るそれぞれの 基 準 日 に 育 児 休 業 している 職 員 のうち 基 準 日 以 前 6 月 以 内 の 期 間 にお いて 在 職 した 期 間 がある 職

スライド 1

Transcription:

解 答 編 第 4 章 条 件 による 分 岐 2 演 習 問 題 4.1 文 法 事 項 1 ) 条 件 分 岐 のために switch case 文 が 使 用 できるのは 条 件 がどのような 形 で 表 される 場 合 か 答 えなさい 分 岐 条 件 が 整 数 の 一 致 条 件 で 表 されている 場 合 に 用 いることができます 2 ) 本 文 中 で 説 明 した switch case 文 を 使 う 場 合 の 注 意 事 項 を 2 つ 答 えなさい switch case 文 は 原 則 として break 文 との 組 み 合 わせで 使 うこと default 文 を 必 ず 付 けること 3 ) マジック ナンバーとは 何 か 答 えなさい また マジック ナンバーがプログラムに 及 ぼす 悪 影 響 とは 何 か 答 えなさい マジック ナンバーとは プログラム 中 に 直 接 書 き 込 まれた 定 数 のことです マジッ ク ナンバーは 見 ただけでは それが 何 であるのか あるいは どんな 役 割 りを 果 たすのかがわかりません このため マジック ナンバーが 書 き 込 まれたプログ ラムは 読 んで 理 解 することが 困 難 になります 4 ) マジック ナンバーをなくすために どのような 方 法 があるか 答 えなさい マジック ナンバーを 無 くすためには #define 命 令 を 用 いた 定 数 定 義 を 用 いる ことができます 例 えば 足 し 算 を 表 すコード 番 号 として 1 を 使 いたい 場 合 #define ADD 1 のように 定 義 することで 直 接 的 な 意 味 が 無 い 1 という 定 数 でなく ADD という 意 味 を 読 み 取 るとこができる 定 数 名 を 使 ってプログラムを 書 くことができ プログ ラムを 読 みやすくすることができます [ 高 度 な 話 題 ] C 言 語 の 新 しい 規 格 では 内 容 を 書 き 換 えることができない const 変 数 が 使 える ようになっています この 変 数 は 名 前 の 通 り 定 数 のために 用 いることができます 例 えば const int ADD = 1; のように const 変 数 ADD を 初 期 化 付 きで 宣 言 すると #define 命 令 と 同 じよう に 用 いることができます #define 命 令 がプリプロセッサの 命 令 であるのと 異 なり const 変 数 は C 言 語 自 体 の 文 法 に 含 まれるため こちらの 方 を 好 んで 用 いるプロ グラマも 多 くいます さらに この 例 のような 定 数 には 本 文 の 第 15 章 の 列 挙 型 を 用 いるのが 最 も 良 い 方 法 です

解 答 編 第 4 章 条 件 による 分 岐 2 演 習 問 題 4.2 整 数 値 を 入 力 すると その 整 数 が 偶 数 か 奇 数 かを 答 えるプログラムを 作 りなさい ただし 1 ) if else 文 を 用 いて 作 ること この 問 題 は 本 当 に 簡 単 です しかし C 言 語 のとんでもない 落 とし 穴 を 含 んでい ます まず 解 答 プログラム 4.1 を 示 しましょう このプログラムは 整 数 を 2 で 割 っ た 余 りが 0 なら 偶 数 という 性 質 を 用 いています ちゃんと 動 きますよ 解 答 プログラム 4.1 偶 数 / 奇 数 判 定 プログラム (if else 版 ) p4_1.c 偶 数 / 奇 数 判 定 プログラム (if else 版 ) int inputnumber; // 入 力 される 整 数 // データの 入 力 printf("input Integer Number > "); scanf("%d", &inputnumber); // 偶 数 / 奇 数 判 定 if(inputnumber % 2 == 0) printf("%d は 偶 数 です \n", inputnumber); else printf("%d は 奇 数 です \n", inputnumber); 2 ) switch case 文 を 用 いて 作 ること 偶 数 / 奇 数 判 定 プログラムを switch case 文 で 作 った 例 を 解 答 プログラム 4.2 に 示 します switch case 文 の 使 用 上 の 注 意 通 り break 文 との 組 み 合 わせで 使 っています さらに 必 要 無 いと 思 われる default 文 も 付 けて エラーメッセー ジを 出 すようにしました しかし 2 で 割 った 余 りは 0 か 1 なので default 文 は 絶 対 に 実 行 されないのではないでしょうか 意 外 なのは 実 行 例 です -1 の 入 力 に 対 して 異 常 です というメッセージが 表 示 されました default 文 が 実 行 された 証 拠 です 実 は 負 の 数 の 割 り 算 で 商 と 余 りを 求 めるのは 意 外 と 問 題 含 みなのです 例 えば 1 を 2 で 割 ると 0.5 です このとき 商 は 1 で 余 りは 1 でしょうか?そ れとも 商 は 0 で 余 りは 1 でしょうか? 要 は -0.5 を 1 に 丸 めるか 0 に 丸 めるかの 問 題 です C 言 語 の 規 格 では この 問 題 は 規 定 されていませんでした つまり コンパイラや マシンによって 結 果 はバラバラだったということです つまり 割 り 算 を 用 いたプ 2

ログラムには 移 植 性 がありません これでは 困 るので C99 の 規 格 では 割 り 算 の 丸 めを 0 の 側 にするように 定 められました つまり 先 ほどの 計 算 結 果 は 商 は 0 で 余 りは 1 です 結 局 解 答 プログラム 4.2 の 実 行 結 果 で default 文 が 実 行 されてしまった 理 由 は 負 の 数 の 入 力 により 剰 余 演 算 の 結 果 として 0 でも 1 でもなく -1 という 値 が 得 ら れたためです 解 答 プログラム 4.2 奇 数 / 偶 数 判 定 プログラム (switch case 版 ) p4_2.c 偶 数 / 奇 数 判 定 プログラム (switch case 版 ) int inputnumber; int remainder; // 入 力 される 整 数 // 2 で 割 った 余 り // データの 入 力 printf("input Integer Number > "); scanf("%d", &inputnumber); // 偶 数 / 奇 数 判 定 remainder = inputnumber % 2; switch(remainder) case 0 : printf("%d は 偶 数 です \n", inputnumber); case 1 : printf("%d は 奇 数 です \n", inputnumber); default: printf(" 異 常 です \n"); [ 実 行 例 ] Input Integer Number > 2 2 は 偶 数 です Input Integer Number > 1 1 は 奇 数 です Input Integer Number > -2-2 は 偶 数 です Input Integer Number > -1 異 常 です % 3

解 答 編 第 4 章 条 件 による 分 岐 2 一 方 で 解 答 プログラム 例 4.1 は 負 の 数 でも 正 しく 動 きます これは if(inputnumber % 2 == 0) という if 文 で 先 に 偶 数 の 場 合 ( いつでも 剰 余 が 0 になる ) を 調 べて それ 以 外 の 場 合 を else 文 で 奇 数 と 判 定 しているためです if(inputnumber % 2 == 1) という if 文 で 先 に 奇 数 を 判 定 するようにプログラムを 書 いていれば プログラ ムは 上 手 く 動 作 しないでしょう もし 先 に 説 明 した 負 の 数 の 割 り 算 の 事 情 を 知 った 上 で プログラム 4.1 を 書 い たとしたら 立 派 ですが このような 事 情 を 知 らずにプログラム 例 4.1 を 書 いたと したら プログラムはたまたま 運 良 く 動 いているにすぎません 誰 にも 考 え 違 いや 知 らないことというのはあるものです 条 件 分 岐 には 自 分 の 想 定 外 の 値 が 得 られた 場 合 を 考 慮 した 例 外 の 分 岐 を 付 けることを 習 慣 付 けておく と 思 わぬ 落 とし 穴 にはまらずに 済 みます 例 えば 解 答 プログラム 4.1 の 場 合 条 件 分 岐 の 部 分 を 次 のように 書 いておくと 良 いでしょう if(inputnumber % 2 == 0) printf("%d は 偶 数 です \n", inputnumber); else if(inputnumber % 2 == 1 inputnumber % 2 == -1) printf("%d は 奇 数 です \n", inputnumber); else printf("error: 演 算 結 果 が 異 常 です \n"); 演 習 問 題 4.3 プログラム 例 4.7を 改 良 して 剰 余 も 求 められるプログラムを 作 りなさい プログラムの 作 例 を 解 答 プログラム 4.3 に 示 します この 解 答 例 での 注 目 点 は 2 点 です 第 一 点 は switch case 文 を 使 ったプロ グラムに 新 たな 分 岐 を 組 み 込 んで 機 能 を 増 やすことがいかに 容 易 かという 点 です 解 答 プログラム 4.3 は 元 になっているプログラム 例 4.7 とほとんど 変 わりません 剰 余 演 算 を 表 すための 定 数 を 定 義 し 剰 余 演 算 を 実 行 するための case 文 を 追 加 し ただけです switch case 文 は その 書 式 上 このような 追 加 が 非 常 に 簡 単 に 読 みやすさを 失 うことなく 実 行 できます その 便 利 さを 噛 み 締 めて 下 さい 第 二 点 目 は 些 細 な 点 ですが printf() 関 数 の 書 式 文 字 列 によって %( パーセ ント ) を 表 示 する 方 法 です 解 答 プログラム 4.3 に 示 す 通 り %% と 2 つ 重 ねる ことによって 一 つの %( パーセント ) を 表 示 することができます 4

解 答 プログラム 4.3 四 則 演 算 を 行 うプログラム p4_3.c 四 則 演 算 を 行 うプログラム ver1.4 1 から 5 の 番 号 入 力 で 演 算 を 選 択 する (switch case 文 ) #define ADD 1 // 足 し 算 #define SUB 2 // 引 き 算 #define MULT 3 // 掛 け 算 #define DIVI 4 // 割 り 算 #define MOD 5 // 剰 余 演 算 int firstnum, secondnum; int operation; int answer; // 入 力 される 2 整 数 // 演 算 の 種 類 // 演 算 の 答 え // データと 演 算 種 別 の 入 力 printf("input Integer Number 1 > "); scanf("%d", &firstnum); printf("input Integer Number 2 > "); scanf("%d", &secondnum); printf("operation 1) +, 2) -, 3) *, 4) / 5) % >> "); scanf("%d", &operation); // 演 算 処 理 switch(operation) case ADD: answer = firstnum + secondnum; printf("%d+%d = %d n", case SUB: answer = firstnum - secondnum; printf("%d-%d = %d n", case MULT: answer = firstnum * secondnum; printf("%d*%d = %d n", case DIVI: answer = firstnum / secondnum; printf("%d/%d = %d n", case MOD: answer = firstnum % secondnum; printf("%d%%%d = %d n", default: printf("error: Operation (1-4) n");

解 答 編 第 4 章 条 件 による 分 岐 2 演 習 問 題 4.4 生 年 月 日 による 次 のような 相 性 占 いがある この 方 法 に 従 って 2 人 の 生 年 月 日 を 入 力 すると 相 性 を 答 えてくれるプログラムを 作 りなさい 1 ) 2 人 のそれぞれの 生 年 月 日 の 各 桁 の 数 を 全 て 足 す この 2 つの 数 の 大 きいほうから 小 さい 方 を 引 く 2 ) 1 ) で 求 めた 数 を 5 で 割 る 割 り 切 れれば 相 性 は 非 常 に 良 い 1 余 れば 相 性 は 良 い 2 余 れば 普 通 3 余 れば 相 性 は 悪 い 4 余 れば 相 性 は 最 悪 プログラムの 作 成 例 を 解 答 プログラム 4.4 に 示 します この 演 習 問 題 は 本 来 は 大 変 面 倒 な 課 題 です 何 故 なら 生 年 月 日 という 形 式 が あり 制 限 がある 入 力 を 処 理 対 象 としているからです 実 用 のプログラムを 作 成 する としたら 入 力 された 日 付 の 妥 当 性 のチェックなどで 大 きな 労 力 を 必 要 とするで しょう しかし ここは 演 習 問 題 ということで 簡 単 のためにチェックを 行 わず ユー ザーの 入 力 を 丸 ごと 信 じることにしましょう 入 力 は 年 月 日 を 別 々に 入 力 することにしました この 他 に 年 月 日 をまとめ て 19980112(1998 年 1 月 12 日 ) のように 大 きな 整 数 として 入 力 してもらう 方 法 もあるでしょう まだ C 言 語 の 勉 強 を 始 めたばかりなので 今 までの 知 識 で できることは 限 られますが 各 自 工 夫 してみて 下 さい 生 年 月 日 の 各 桁 の 足 し 算 は 商 と 余 りの 性 質 を 使 って 計 算 しています プログラム をよく 読 んでみて 下 さい ほとんど 同 じ 文 が 沢 山 並 ぶ 結 果 になってあまりカッコい いプログラムとは 言 えません この 後 繰 り 返 し 構 文 や 関 数 などを 学 ぶと スマー トに 書 き 換 えることができます 解 答 プログラム 4.4 相 性 占 いプログラム p4_4.c 性 格 占 いプログラム int year, month, day; // 成 年 月 日 int aperson, bperson; // 成 年 月 日 の 各 桁 合 計 int result; // 相 性 の 結 果 printf("1 人 目 : 生 まれた 年 ( 西 暦 ) > "); scanf("%d", &year); printf("1 人 目 : 生 まれた 月 > "); scanf("%d", &month); printf("1 人 目 : 生 まれた 日 > "); scanf("%d", &day);

aperson = year / 1000; year = year % 1000; aperson = aperson + year / 100; year = year % 100; aperson = aperson + year / 10 + year % 10; aperson = aperson + month / 10 + month % 10; aperson = aperson + day / 10 + day % 10; printf("2 人 目 : 生 まれた 年 ( 西 暦 ) > "); scanf("%d", &year); printf("2 人 目 : 生 まれた 月 > "); scanf("%d", &month); printf("2 人 目 : 生 まれた 日 > "); scanf("%d", &day); bperson = year / 1000; year = year % 1000; bperson = bperson + year / 100; year = year % 100; bperson = bperson + year / 10 + year % 10; bperson = bperson + month / 10 + month % 10; bperson = bperson + day / 10 + day % 10; if(aperson > bperson) result = aperson - bperson; else result = bperson - aperson; result = result % 5; switch(result) case 0: printf(" 相 性 は 非 常 に 良 い n"); case 1: printf(" 相 性 は 良 い n"); case 2: printf(" 相 性 は 普 通 n"); case 3: printf(" 相 性 は 悪 い n"); case 4: printf(" 相 性 は 非 常 に 悪 い n"); default: printf("error: 異 常 です n"); 7