C言語の基礎がわかりません。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
のぞみ

C言語の基礎がわかりません。

#1

投稿記事 by のぞみ » 2年前

C言語の勉強を始めたのですが、この問題で詰まってしまいました。
6桁の数字を受け取って、年と月を打ち込むと、元号で表した年と季節(春:3~5月, 夏: 6~8月、秋: 9~11月、冬:12~2月)を表示するプログラムを作りなさい。昭和以前の元号には対応しなくても良い。
例、201812→平成30年冬、201903→平成31年春
  201908→令和元年夏、202110→令和3年秋

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: C言語の基礎がわかりません。

#2

投稿記事 by みけCAT » 2年前

具体的にどこで詰まったかがわからないので、とりあえずPythonで書いてみました。
あとはこれを移植すればいいでしょう。

コード:

# coding: utf-8

import sys

def solve(suuzi):
	nen = int(suuzi[0:4])
	tuki = int(suuzi[4:6])

	if nen < 2019 or (nen == 2019  and tuki < 5):
		gengou = "平成"
		wareki_nen = nen - 2019 + 31
	else:
		gengou = "令和"
		wareki_nen = nen - 2019 + 1

	if wareki_nen < 1:
		return "not supported"

	kisetu_list = ["冬", "春", "夏", "秋"]
	one_digit_nen_list = ["元", "2", "3", "4", "5", "6", "7", "8", "9"]

	if wareki_nen < 10:
		out_nen = one_digit_nen_list[wareki_nen - 1]
	else:
		out_nen = str(wareki_nen)

	return gengou + out_nen + "年" + kisetu_list[tuki // 3 % 4]

while True:
	data = sys.stdin.readline().strip()
	if data == "":
		break
	print(solve(data))
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
あたっしゅ
記事: 663
登録日時: 13年前
住所: 東京23区
連絡を取る:

Re: C言語の基礎がわかりません。

#3

投稿記事 by あたっしゅ » 2年前

東上☆海美☆「
https://detail.chiebukuro.yahoo.co.jp/q ... 4214434464
c言語についての質問です。授業で、6桁の数字で西暦と月を入力すると、元号で表した年と季節を表示するプログラムをかけ、というものが出ました。

例 20170801 → 平成29年夏

自分なりにかなり考えたのですが、どうしてもわからないので模範解答のようなものを示していただけないでしょうか。- YAHOO ! JAPAN 知恵袋(ja)

上記でも、参考にするみみ。
VTuber:
東上☆海美☆(とうじょう・うみみ)
http://atassyu.php.xdomain.jp/vtuber/index.html
レスがついていないものを優先して、レスするみみ。時々、見当外れなレスしみみ。

中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。

box
記事: 2002
登録日時: 13年前

Re: C言語の基礎がわかりません。

#4

投稿記事 by box » 2年前

この問題で詰まってしまいました。
手で計算するとしたらどうするかっていう話なんですけど...。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

返信

“C言語何でも質問掲示板” へ戻る