プロ言2

2024/02/09

1.一次元すごろく(目標25分)

一次元のすごろくのマスを用意する。以下のルールに沿った,プログラムを作成せよ。
・マスのサイズは,実行時に入力される値(length)である。
・初期位置は,1マス目(一番端)とする。
・サイコロは,ピッタリゴールにつくまで永遠に振る(自動で)。

1 2 3 ... length

図1:マス初期化

・サイコロの目に沿って,ピッタリとゴールしなければならない。例えば,あと2マスでゴールの場合にサイコロで3が出た場合,2進んで1戻る。

... n-2 n-1 n(Goal)
→サイコロで3が出た→
... n-2 n-1 n(Goal)
図2:サイコロがオーバーした場合 図3:具体的にはn-1, nと進んで,残りの1手は戻るのでn-1に到着

・サイコロを振る関数はすでに用意してある。( shuffle()を呼ぶ;戻り値は1〜6の整数 )
・1回サイコロを振るたびに,全部のマスを表示し,現在止まっているマスに「*」を表示する。
・ゴールに着いたら,上の表示内容に加え,何手でゴールに辿り着けたかを表示すること。
・コンソールに表示した内容をそのまま,ファイルにも書き込む。この時のファイル名は,特に指定しない。

以下にテンプレートを示す。(ダウンロード)

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

// shuffle関数では,サイコロを振る
int shuffle(){
    return rand() % 6 + 1;
}

int main(){
    int count = 0;// サイコロを振った回数
    int length;// ボードの長さ
    int me;// 今の自分の位置
    FILE* fp;// コンソールの内容転記するファイル
    // 必要に応じて,変数は追加する

    srand((unsigned int) time(NULL));

    // 以下に追加

    return 0;
}

以下に実行例を示す。

入力ファイル名>test.txt マスの数を入力してください>10 
[*] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] 
**********1順目**********
1が出ました!
[ ] [*] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] 
**********2順目**********
4が出ました!
[ ] [ ] [ ] [ ] [ ] [*] [ ] [ ] [ ] [ ] 
**********3順目**********
5が出ました!
[ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [*] [ ] 
**********4順目**********
3が出ました!
[ ] [ ] [ ] [ ] [ ] [ ] [ ] [*] [ ] [ ] 
**********5順目**********
2が出ました!
[ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [*] 
5順目でゴール!

◎解答例はこちら


2.東京都の平均気温表作成(目標25分)

・以下のテキストファイルを保存せよ:こちら
 ↑環境によっては,文字コードを UTF-8 から ShiftJS にする必要があります
・このデータは,2009年から2022年までの,毎月の気温の平均気温のデータである。
・このデータ(テキストファイル)を読み込み,2009年から2022年にかけての各月の平均気温,およびその年の平均気温を計算し,コンソールに表示せよ。
・ファイルのデータ構造は以下の通りである。

年次1(月の平均気温)2〃3〃4〃5〃6〃7〃8〃9〃10〃11〃12〃

以下にテンプレートを示す。(ダウンロード)

#include <stdio.h>
#include <stdlib.h>

// 構造体を使う・使わないの選択を誤ると非常にめんどくさい!

int main(){
    FILE* fp;

    // 変数は必要に応じて追加

    return 0;
}

以下に実行例を示す。

average tmperature of 2009 is 15.96.
average tmperature of 2010 is 16.17.
average tmperature of 2011 is 15.82.
average tmperature of 2012 is 15.46.
average tmperature of 2013 is 16.19.
average tmperature of 2014 is 15.71.
average tmperature of 2015 is 15.93.
average tmperature of 2016 is 16.06.
average tmperature of 2017 is 15.43.
average tmperature of 2018 is 16.44.
average tmperature of 2019 is 16.08.
average tmperature of 2020 is 16.18.
average tmperature of 2021 is 16.17.
average tmperature of 2022 is 16.03.
average tmperature of January is  4.95.
average tmperature of Febuary is  5.96.
average tmperature of March is  9.65.
average tmperature of April is 14.14.
average tmperature of May is 19.21.
average tmperature of June is 22.23.
...

◎構造体を使った時の解答例はこちら(さて,これはめんどくさいかな...?)。