• ベストアンサー

c言語応用で血液型判定プログラムの作り方を教えてください*

こんにちわっ!いきなりですけど、キーボードから血液型(A,B,O,AB)を入力して、その結果を表示するプログラムを作成して、入力は繰り返し入力できるようにしてCirl+’Z’を入力したら処理を終了する・・・というののやり方を教えてほしいんです!!よろしくお願いします**

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

  • ベストアンサー
  • yatokesa
  • ベストアンサー率40% (201/496)
回答No.3

C言語の解説書等、参考書はお手元にないのでしょうか? getsは一般的ではないのかもしれませんので、scanfに関して解説されているページをご紹介します。 http://www.geocities.co.jp/SiliconValley-Bay/8490/c/c_004.html http://www.kumei.ne.jp/c_lang/intro/no_06.htm #習っていないのに作れと言うのは少し酷な課題ですね break はループの終了判定で使えます。continueは...どうでしょう。使おうと思えば使えそうです。 while (1) {  res = scanf (.....);  if (res == 終了) break;  入力チェック  if ( A, B, O, AB じゃない) contiue;  表示処理 } こんな感じです。 ctrl-Z は EOFのコードを入れてくれるはずですので、終了判定時に EOFコードと比べて breakしてください。 おおざっぱに書きましたので解らなければ補足ください。 #参考URLも参考にしてください

参考URL:
http://www.geocities.co.jp/SiliconValley-Bay/8490/c/index.html , http://www.kumei.ne.jp/c_lang/

その他の回答 (2)

  • yatokesa
  • ベストアンサー率40% (201/496)
回答No.2

課題のようですので詳しくは説明しません。 まずは調べてみて、それでわからなければそのことについて質問ください。 gets は標準入力(キーボード等)から文字列を取得する関数です。このほかに scanf 等があります。

mikamikamika
質問者

補足

breakとcontinueを使ってできますか??getsとscanfというのは習ってないんです・・・。。。

  • yatokesa
  • ベストアンサー率40% (201/496)
回答No.1

gets でいいんじゃないでしょうか。 while (gets(buf)) {  処理 }

mikamikamika
質問者

補足

getsって何の事なんですか??処理の仕方もよく分からないのですが・・・。。もしよろしければ詳しくお願いします!!

関連するQ&A

  • c言語がわかりません

    (1)5人のテストの点数をキーボードから配列に入力し、70点以上の人をカウントし、結果を表示するプログラムを作る。 (2)2つの配列(aとb)の中身を交換するプログラムを作成する。2つの配列は交換前と交換後を表示する。

  • 凝集反応からの血液型判定

    100人の血液型は、A型がX人、B型がY人、AB型がZ人、残りがO型とする。 この100忍について凝集反応を調べたところ、A型の人の血清で凝集した人が30人、 B型の人の血清で凝集した人が50人、A型の人の血清とB型の人の血清の両方の血清で凝集した人とどちらの血清でも凝集しなかった人が、合わせて40人という結果が得られた。 この調査結果から、X、Y、Zを求めよ。 これはどう解いたらよいのでしょうか? 解法をご教授願います。

  • C言語の問題

    配列の問題 1.キーボードから入力したアルファベットの大文字(A~Z)の入力回数をそれぞれ数え、結果を画面出力するプログラムを作成せよ。但し、入力の終了はEOFとし、入力回数のカウントには、配列を用いるものとする。(文字ごとに回数を格納する配列を用意する) 2.キーボードから番号(数字)を入力し、その番号に該当する文字列中の文字を画面表示するプログラムを作成せよ。なお、数字以外の文字が入力した場合と、文字列の範囲外の数字が入力された場合は、任意のメッセージを出力し、再入力するようにする。また文字列はキーボードから入力するものとする。 この問題が解けなくて困ってます。どうか知恵をかしてください。

  • C言語プログラムの課題

    大学で以下のような課題が出ました。でも全然わかりません。わかる方がいらっしゃったら、是非教えてほしいです★ 1整数値123を変数iに代入して、iの値を表示するプログラムを作成せよ。 2実数値3.14159を変数xに代入して、xの値を表示するプログラムを作成せよ。 3文字型せーた'A'を変数chに代入して、chの値を表示するプログラムを作成せよ。ただし、chの値を表示する際には、%d,%x,%cの書式を用いること。 4キーボードから入力された2つの整数値i,jの値を画面に表示するプログラムを作成せよ。 5キーボードから2つの整数値を、変数in1とin2に入力して、以下の計算をした結果を画面に表示するプログラムを作成せよ。 in1+in2= in1-in2= in1*in2= in1/in2= in1%in2=

  • 付き合いにくい血液型

    付き合いにくいと思う血液型、何型ですか?? 日本人 A型 B型 O型 AB型 または、日本人だけど他の国のハーフの血液型もあります。 A型 B型 O型 AB型

  • 血液型について教えて下さい。

    血液型の遺伝子型をAA、AO、BB、BO、AB、OOとしてそれらが特に意識せずに性交をしていくとこれらの比率はA型3:B型3:AB型2:O型1になるという計算結果が出ました。 しかし現実にはそんなことはありません。一番多い血液型はO型であり続いてA>B>ABという比率になっています。 これにはいったいどんな要素が含まれているのでしょうか? 言うまでもなく期限が古い血液型はO型ですので比率が大きいのは納得することができますが、次に多いA型が増えたのはコレラなどの感染症に有効だからだという説があります。 しかしだからと言って子どもの血液型を選ぶことはできませんし、またコレラなどによりO型の血液が大幅に減ったとしても、現在一番多い血液型はO型なのには変わりません。 現時点では差がありますがこれから先は3:3:2:1の比率になるのでしょうか? ご教授お願いします。 偶然的要素があるのは事実ですがサイコロの目と同じでそれも同じだけという感じで教えてほしいです。

  • C言語プログラム

    こんな課題が出たのですが、さっぱりわかりません。 誰か解る人がいたら教えてほしいです。 1 3+5+7+…+nと奇数の和を求め、和が100を越えたときのnの値を求めて表示するプログラムをdo~whileを使って作成しなさい。 2  キーボードから3つの数を読み込み、最大値を求める処理を繰り返し行うプログラムを、do~whileを使って作成しなさい。繰り返しの終了は、計算のあとで、'S'(1文字)が入力されるまでとし、それ以外の文字では、処理を続行すること。 3  整数型1次元配列kに整数123,456,789をそれぞれ代入し、その内容を表示するプログラムを作成しなさい。 4  文字型1次元配列strに'u'を、'n'、'i'、'x'それぞれ代入し、その内容を文字列として出力するプログラムを作成しなさい。 5  要素数50の整数型1次元配列mの要素すべてに、その添字に対応した0~49の数値を代入し、その内容を表示するプログラムを作成しなさい。 3は #include <stdio.h> main() { int k[3]; k[0] = 123; k[1] = 456; k[2] = 789; printf("%d\n%d\n%d", k[0], k[1], k[2]); return 0; } と解いてみたんですが、やっぱ間違えてますよね?

  • 外国での血液型の表し方について

    日本ではA,B,O,ABと血液型をあらわしますが、 アメリカやイギリス等外国では どのような表し方で表しているのでしょうか? ZやUという表し方もあると聞いたことがあります。 また裏血液型というのもあるそうなのですが 本当なのでしょうか?

  • 血液型

    血液型にはA型とB型とO型とAB型がありますが、疑問です。A、Bと来てC型にはならず、なぜO型になるのですか? というか血液型にはC型という呼び方をなぜ使わないのでしょう?

  • 輸血できる血液型とは?

    輸血できる血液型の組み合わせで質問ですが 下記で正しいでしょうか? 輸血できる血液型 A型はA型とAB型から B型はB型とAB型 AB型はAB型のみ O型はO型のみ

専門家に質問してみよう