• 締切済み

C言語に関して質問です。 次のような課題を出された

次のようなあみだくじをコマンドライン上に表示させるプログラムを作成せよ。なお、横線の引き方は通常のあみだくじに従う。また、横線およびあたりについては乱数 を使って実行ごとに変わることとする。 | | | |---| | |---| | | |---| | | | | | | |---| | | | |---| | | |---| | |---| | | | | | |---| | | | |---| | |---| | | | !!! 当たりのところは!!!です。解説とソースをよろしくお願いします。

みんなの回答

  • jjk65536
  • ベストアンサー率59% (66/111)
回答No.2

$ ./hoge | |---| | | |---| | | | | | | |---| |---| | | | | | |---| | |---| | | | | | | |---| | | | |---| | | | |---| | | | |---| !! $ cat hoge.c #include <stdio.h> void ladder(int pos) {   int i;   for(i=0; i<6; i++){     if(i == pos){       printf("---");     }     else if(i+1 == pos){       printf("|");     }     else{       printf("| ");     }   }   printf("\n"); } int main(int argc, const char *argv[]) {   srand(time(NULL));   int i;   for(i=0; i<10; i++)     ladder(rand()%4+1);   int goal = rand()%6;   for(i=0; i<goal; i++)     printf(" ");   printf("!!\n");   return 0; } かならず線を一本またいでるみたいですけど、これが「引き方は通常のあみだくじに従う」に 合致しているのでしょうか? 先生に聞いてみて下さい。

  • Dute
  • ベストアンサー率42% (6/14)
回答No.1

課題の答えを書く訳にはいかないので、ヒント程度とさせて下さい。 「表示させるプログラムを作成」なので、実際に動かす必要は無いと取れます。 簡単に考えましょう。 肝心のあみだくじについて、 縦線は5本、その縦線のうち隣合う2本の縦線の間に横線が一行毎に1個入っています。 一番左の縦線の左、または一番右の縦線の右には横線が入らない事から、乱数は何通り有れば良いかは分かりますね。 上記を10回繰り返した後に、次はゴールを書く。 ゴールの!!!の表示位置については、全角スペースを前に入れることで右にずらす事が出来ますね。 ってただ読んだだけですが、これをこの順でプログラムにすれば良いんじゃないでしょうか? どうでもいい話ですが、 「コマンドラインでやる以上、縦線を全角で!を半角で表示させたとしても!が一個はみ出るので、美しくないです!」 って先生に付き返してみて下さい・x・

関連するQ&A

  • C言語についての質問です。

    unixにてプログラムを作成しているのですが困っています。 4×4のマス目の数字を入力後、1~4の数字を各行、各列、2×2の小領域で 各数字を丁度一個配置する、数独のプログラムです。 何からすれば良いのか分かりません、ソースとその解説をお願いします。

  • C言語の課題について。教えてください

    次のプログラムに3重ループ(for)を使ってプログラムを作成したい。 コンパイルの実行結果から考えて、(1)(2)(3)の中に適切な数値や式等をいれよ。 #include<stdio.h> main() { int a,b,c; for(a=1;a<=3;a++){ (1) for(b=1;b<=2;b++){ (2) for(c=1;c<=3;k++){ (3) } コンパイルした後の実行画面 abbc c c d abbc c c d abbc c c d 解答欄 (1) (2) (3)

  • 【C言語】コンパイル不可

    いつもお世話になっておりませす。 以前、下記の質問をさせていただき、 回答者様からソースプログラムをいただきました。 http://okwave.jp/qa/q7471896.html プログラムを実行しDos上で文字を入力したところ、 「'C:Documents' は内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチファイルとして認識されていません。」 と表示されてしまいます。 自分で作成したプログラム等は問題なく実行されるのですが、 回答者様から教えていただいたプログラムのみ実行されません。 自分なりに調べてみたのですが、 解決策が今ひとつ分からず質問させていただきました。 尚、コンパイラは 「Borland C++ Compiler 」 を使用しております。 どうぞ宜しくお願い致します。

  • c言語の実行が分かりません

    C言語のプログラムを実行させる方法が分かりません。 unixでC言語を以下の手順で学習しています。 1 emacs上でファイル名.cというソースファイルを作成。 2 xterm上で gcc ファイル名.c と入力 その後xterm上で後一つコマンドを入力すればいいのですが、そのコマンドを忘れてしまいました。教えていただければ、ありがたいです。

  • C言語の課題(関数)での質問です。急いでます。

    C言語の課題(関数)での質問です。急いでます。 C言語の関数のプログラミングついて、ご教授お願いします。 下記のプログラムを関数を用いて実行したいのですが、どのようにすれば良いでしょうか? 回答(できたら簡単な解説)の明記をお願いします。 問題1:入力したプログラムから以下のように出力するプログラムを作成する。 (実行結果例) 文字列を入力: 今日は、晴れです。 今日は、晴れです。 日 す は で 、 れ 晴 晴 れ 、 で は す 日 。すでれ晴、は日 今 問題2:ファイル入力した漢字データ(全角)を読み込み、行数を数えながら逆から表示するプログラム。 (実行結果例) (例として次のような C:\test2.txtを入力する) 今日は、晴れです。昨日は、雨で した。明日は、曇でしょう。明後 日は、快晴でしょうか。 ←の文章を以下のようなプログラムにする。 ファイル名を入力してください:C:\test2.txt 1:で雨、は日昨。すでれ晴、は日今 2:後明。うょしで曇、は日明。した 3:。かうょしで晴快、は日 問題3:ファイルのデータ(英文)を読み込み、一行毎の文字数(スペースも含む)とワード数を数えるプログラム。 (実行結果例) (例として次のような C:\test3.txtを入力する) And friends just can't be found Like a bridge over troubled water I will lay me down ←の文章を以下のようなプログラムにする。 ファイル名を入力してください:C:\test3.txt 1:And friends just can't be found ⇒31文字、6ワード 2:Like a bridge over troubled water ⇒33文字、6ワード 3:I will lay me down ⇒18文字、5ワード 問題4:1月1日が金曜日の平年(たとえば2010年)について、月日の入力データから、曜日を求めるプログラム。 (実行結果例) 月を入力してください:9 日を入力してください:15 9月15日は、水曜日です。 以上4問です。どうか回答よろしくお願い致します

  • C言語の課題(関数)での質問です。急いでます。

    C言語の課題(関数)での質問です。急いでます。 C言語の関数のプログラミングついて、ご教授お願いします。 下記のプログラムを関数を用いて実行したいのですが、どのようにすれば良いでしょうか? 回答(できたら簡単な解説)の明記をお願いします。 問題1:入力したプログラムから以下のように出力するプログラムを作成する。 (実行結果例) 文字列を入力: 今日は、晴れです。 今日は、晴れです。 日 す は で 、 れ 晴 晴 れ 、 で は す 日 。すでれ晴、は日今 問題2:ファイル入力した漢字データ(全角)を読み込み、行数を数えながら逆から表示するプログラム。 (実行結果例) (例として次のような C:\test2.txtを入力する) 今日は、晴れです。昨日は、雨で した。明日は、曇でしょう。明後 日は、快晴でしょうか。 ←の文章を以下のようなプログラムにする。 ファイル名を入力してください:C:\test2.txt 1:で雨、は日昨。すでれ晴、は日今 2:後明。うょしで曇、は日明。した 3:。かうょしで晴快、は日 問題3:ファイルのデータ(英文)を読み込み、一行毎の文字数(スペースも含む)とワード数を数えるプログラム。 (実行結果例) (例として次のような C:\test3.txtを入力する) And friends just can't be found Like a bridge over troubled water I will lay me down ←の文章を以下のようなプログラムにする。 ファイル名を入力してください:C:\test3.txt 1:And friends just can't be found ⇒31文字、6ワード 2:Like a bridge over troubled water ⇒33文字、6ワード 3:I will lay me down ⇒18文字、5ワード 問題4:1月1日が金曜日の平年(たとえば2010年)について、月日の入力データから、曜日を求めるプログラム。 (実行結果例) 月を入力してください:9 日を入力してください:15 9月15日は、水曜日です。 以上4問です。どうか回答よろしくお願い致します

  • プログラムを作成(c言語)

    コマンドプロンプト上でタイピングゲームができるプログラムを作成したいのですが、コマンドプロンプト上で時間をカウントしたりできるのですか?できるのであればソースなどを教えてください

  • C言語を始めたのですが

    最近C言語を初めています。ソフトとしてCPad for Borland C++compilerを使っています。 初めの一日目はそれで作ったものを実行ボタンで実行できたのですが、 次の日からファイルを開いて実行を押してもそのファイルがある場所(デスクトップなど)が記されているだけて、何もプログラムが実行されません。 なにか押してみても '○○' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 と表示されます。何か原因があるのでしょうか?もしも解消できるかたいれば教えてください。また、他に初心者におすすめなソフトを教えてもらえないでしょうか?今使っているのは今現在インストールできないみたいなのですが、他に使いやすいソフトあれば教えてください。 長くなりましたが、よろしくお願いいたします。

  • c言語の問題で質問があります。

    * 繰り返しを利用して,printfの命令を一回だけ用いて, * -5 から -2 と 3 から 5 までの数字を表示するプログラムを作成せよ * * ※ プログラム中に printfは一回しか記述してはいけません * * ヒント:繰り返しの中で,条件分岐をうまく利用しましょう. * 【実行結果】 -5 -4 -3 -2 3 4 5 * */ これを、コマンドプロンプトで表示するには、メモ帳にどう入力すればよいですか?

  • Visual C++でC言語の基礎学習

    Visual C++を使ったC言語についての質問です。 (アプリケーションの作成ではなく、コマンドプロンプト上で起動する基礎的な文法の学習です) Win32コンソール プロジェクトを作成し、そのプロジェクトの中でCのソースファイルを作成して実行確認をしようと思っています。 プロジェクト内のソースファイルが1つだけだと正常にビルドできますが、2つ以上のソースファイルを作成してビルドすると 「1 つ以上の複数回定義されているシンボルが見つかりました。」 というエラーがでてしまい、実行することができません。 新たにWin32コンソール プロジェクトを作成し、その中でソースファイルを作成しなければ実行できないのでしょうか? よろしくお願いします。

専門家に質問してみよう