• ベストアンサー

C言語でつるかめ算をするにはどうすればいいですか?

C言語初心者の質問失礼します。 学校で、 「つると亀が合わせてn 匹います。足の数は合わせてm です。n とm を入力して、つると亀がそれぞれ何匹いるかを求めるプログラムを作りなさい。もし解がない場合は、その旨を出力するようにプログラムしなさい」 という課題が出たのですが、どうプログラムすればいいかわからずに困っています。 どのようにプログラムすればいいか、どうか一言でもかまいませんのでご意見ください!>< こんな質問してごめんなさい。もしよければプログラミングをわかりやすく学べるHPのURLも教えていただければ嬉しいです…。

質問者が選んだベストアンサー

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

考え方だけコメントしてみます。 つるがi匹いるものとします。 iが0のとき、亀はn匹なので、足の数はi*2+n*4となりますよね。 これがmと一致したら、つる0匹が答えです。 一致しなかった場合。 iが1のとき、亀はn-i匹なので、足の数はi*2+(n-i)*4となりますよね。 これがmと一致したら、つる1匹が答えです。 といったように、iを0~nまで一つづつ大きくしていって 比較を繰り返せばいいのです。 これにはforループを使います。 あとはご自身でできるでしょうか?

その他の回答 (4)

noname#121893
noname#121893
回答No.5

鶴亀算の解き方は知っていますか? 解き方を知らなければコンピュータに解き方を教えることができません。 もし解き方がわからなければ数学の連立方程式の解き方を思いだしてみてください。 ・鶴をx、亀をyとしてn=5、m=16とした場合 x+y=5 2x+4y=16 2x+2y=10 2y=6 y=3 x+3=5 x=2 ちなみに解がない場合は頭数が少数になったりマイナスになったりします。

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.4

問題になる部分は次の三カ所です。 1. 鶴亀算そのもの。 これは、鶴と亀の数をmとnで表せるように、代数的な計算は紙の上でやってしまいます。 2. mとnをどのように入力し、結果をどのように出力するか? 環境不明なので、標準入力と標準出力を使うのが普通の考え方です。入力に関しては、コマンドライン引数を使うのもアリでしょう。 3. 数値の表現範囲をどうするか? unsigned long long型で表現できる範囲でよいのか、そうでないならどこまで必要なのか? これらについて解決することが先決かと思います。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

fgets なら当然「指定したバイト数」しか読めませんが, scanf なら「int に入る限り」大丈夫だと思いますよ>#1. 少なくとも規格には「バイト数の上限」はないはずです. 手元では scanf で 3921桁の数値 (000.....0001, つまりただの 1 ですが) を読み込めてます. gcc の方が VC より速いんだけど.... なんでだろう.

回答No.1

こんな感じかなあ? http://ideone.com/UWupV #標準入力の内容に、250桁の数値とか入力されたらどうなるんだろう?先頭128バイトで切られて不正確な値になっちゃうんだろうか

関連するQ&A

  • C言語プログラミングで困っています。助けて下さい。

    C言語プログラミングで困っています。助けて下さい。 課題1-1: 実数 a と実数 b を入力すると、一次方程式ax + b = 0 の解を求めるプログラムを作る 課題1-2: 1-1 で作成したプログラムについて、さらにa として1が入力されたとき、方程式の表示       部分が1x + 3 = 0ではなくx + 3 = 0となるようにせよ 課題1-3: 1-2 で作成したプログラムについて、さらにb として0 や負の数が入力されたとき、方程式     の表示部分が2x = 0 や2x – 3 = 0となるようにせよ 課題1-4: 1-3 で作ったプログラムについて、さらにa の値として0が入力された場合、「解けません」     と表示するようにせよ 課題1-5: 係数 a, b, c を入力すると、 2次方程式ax2 + bx + c =0の解を表示するプログラムを作     れ ※ 1-2 ~ 1-4 のような機能を盛り込む ※ a が0の場合には、先に作った1次方程式のプログラムが動く という問題です。最終的にこれらを一つのプログラムにしてください。判別式や解の公式、ルート√などを使ってよろしくお願いします。C言語でお願いします

  • C言語

    課題なんですが、C言語で 「文字列と正数nをキーボードから入力して、1行n文字で改行するプログラム」 をつくりたいのですが、わかりません。どうすればよいのですか?

  • C言語 2次方程式を解くプログラムについて

     学校でC言語を使って、実数解をもつ簡単な2次方程式を解くプログラムを作れという課題がでました。まだ初心者で何をどうしたらいいかわからない状態です。簡単なプログラムを作ってくださいm(__)m

  • C言語初心者の質問失礼いたします。

    C言語初心者の質問失礼いたします。 C言語の講義を受けているものなのですが、講義の課題として、 3桁の整数で二乗すると下3桁がもとの数になるものをすべて求めなさい。 というものが出されました。 何をどのようにプログラムすればいいかさえ、まったくわかりません…。 簡単な問題だよと先生は仰っていたのですが、どうにもこうにわからずにいます 涙 どなたか、どうか一言でもかまいませんのでアドバイスいただけませんでしょうか? よろしくお願いいたします…。

  • C言語 プログラミング

    C言語プログラミングで分からない問題があるのですが、 nを入力して、0~nまでの数値のうち、 (1)偶数のみ足しなさい (2)3の倍数のみ足しなさい の2つのプログラムがわからいのですがどなたか教しえていただけませんか?

  • C言語について教えて下さい。

    C言語について教えて下さい。 C言語の知識はないが、課題なので困ってます。 助けてください!!! 変更前 N00001 AAAA; N00002 M10; N00003 M11; N00004 BBBBB; N00005 YYYY; N00006 M12; N00007 M13; N00008 CCCCCC; N00009 YYYY; N00010 M14; N00011 M15; N00012 DDDDDDD; N00013 YYYY; N00014 EEEEEEEE; 変更後 N00001 AAAA; N00002 BBBBB; N00003 M10; N00004 M11; N00005 YYYY; N00006 CCCCCC; N00007 M12; N00008 M13; N00009 YYYY; N00010 DDDDDDD; N00011 M14; N00012 M15; N00013 YYYY; N00014 EEEEEEE

  • 【至急】C言語のプログラミングについての質問です。

    【至急】C言語のプログラミングについての質問です。 以下の2問の解答をお願い致します。 問1. サイズ3の2つの配列の和、差、内積を出力するプログラムを作成してください。 問2. m+1*n+1行列の配列aの 各行ごとの合計 gyouwa[i] i=0,1,・・・,m 各列ごとの合計 retuwa[i] i=0,1,・・・,n を計算するプログラムを作作成してください。 また、 各行内での最大値 aimax[i] i=0,1,・・・,m 各列内での最大値 ajmax[i] i=0,1,・・・,n を求めるプログラムを作成してください。

  • 四次方程式をC言語を用い解きたいです.

    C言語は一応一通りのことは理解できます. 四次方程式を数値解析もしくは解の公式を用いた解法をプログラムに起こしたいです. 過去の質問も見てみましたがしっくりくるものがありませんでした. みなさんにオススメプログラムがございましたら, 教えていただきたいです. よろしくおねがいします. 四次方程式ではなくn次元でも結構です. 言語はCでお願いします.

  • C言語のプログラミングのある問題について・・・?

     私は、ある大学に通う二年生です。実は、授業でC言語のプログラミングの授業があるのですが、includeとか、for文とか、とにかくそこに出てくる用語も全然と言っても良いぐらい分からないし、それにその科目を教えている先生から課題が出されました。  その課題というのは、以下の問題です。誰か僕に力をください。  お願いします。   問    正の整数1から10までの範囲でパスカルの三角形を画面上に出力するプログラムを作り、さらにその三角形をもう一つ組み合わせてひし形を作り、ひし形が出力できるように補修せよ。  (注)「使用できる配列は、1次元に限る」という条件を守って作ること。

  • プログラミングの問題です。c言語でお願いします。

    プログラミングの質問です。 c言語でお願いします。 以下の結果が得られるようなプログラムを書いてください。 期末試験では必ずフローチャートを書いてください。また、フローチャートが 書けない場合は、どういう順番でプログラムを書けば よいかを書いてください。 10秒間、1秒間当たり5個得られる実験データを入力させ、それを 1秒ごとに平均した値として出力する。 プログラミングわからないのでお願いします。