• ベストアンサー

C言語で、最大数を表示

C言語始めたばかりの者です。 点数(0≦x≦100)を6つ入れた時に、その中の最大数を表示するソースファイルを書こうとしていますが、テキストなどを参考にしてもよくわかりません。 基本的なものなんでしょうが、頭を悩ませています。どなたかご教授下さい。よろしくお願いします。

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

  • ベストアンサー
  • yamada_28
  • ベストアンサー率43% (21/48)
回答No.2

自分なら、最大値を-1(0≦x≦100なので、0より小さい値←入力されたxが必ず最小値である0以上であるような数値)を基準にして、入力された6つの値が-1より大きいかでみます。多きければ、今度はその値より入力された値が…って具合で6つ判断させます。 max = -1; if max < 入力値 { max = 入力値 ; } ↑これを入力回数分だけ繰り返す。そうすれば、maxが最大値になる こういう場合は、いきなりCなどの言語に置き換えないで、自分ならどうやって答えを導き出すかを考え、その導き出した答えをCなどの言語に置き換えるとわかりやすいですよ。

その他の回答 (2)

  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.3

1.最大値を覚えておく変数を定義します。 2.仮の最大値をセットします。   ありえない小さい数か、トップのデータをセットします。 3.テーブルと最大値を比べてテーブルのほうが大きければ最大値に代入します。 4.上の3を6回(又は5回)繰り返したら終り。 皆さんが言われるように先に言葉で考えて、考えがまとまってからCでプログラム したほうがいいです。 処理の仕方をアルゴリズムといいます。アルゴリズムの勉強も大事ですね。

wing01376
質問者

お礼

考え方は理解できました。自分でも色々考えてみたいと思います。 ありがとうございました!一まとめにお礼申し上げることをお許し下さい。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

仮の最大値を-1とか0にして、 それぞれのデータと比較して、自分より大きい値が表れたら、そのデータの値で自分を更新します。 全部のデータと比較が終われば、最大値になっています

関連するQ&A

  • c言語 最大公約数

    C言語のプログラムについてです。 2つの正の整数x,y(任意)の最大公約数、最小公倍数を求めるプログラムを作ってください。(それぞれ、1個ずつ) ただし、関数は使わないでください。#include<stdio.h>のみ 回答よろしくお願いいたします。

  • C言語で16進数をテキスト出力したい。

    お世話になります。 件名の内容で、参考になるサイトや手法などをご教授願います。 【件名】C言語で16進数をテキスト出力したい。 【環境】OS:WindowsXPsp2 コンパイラ:borlandC 【詳細】 現在、C言語で以下の手順で処理を行うプログラムを作成しております。 手順1:ASCIIコードで記載されたテキストをUTF8コードに変換 手順2:UTF8に変換された1行目の文字列を16進数コードフォーマットをファイル名にして保存 手順2の16進コードフォーマットのファイル名にして保存する作業で fprintf(buff,"%x",UF8); //"buff"保存ファイル名、"UTF8"1行目文字列 を用いて行えるかと思ったのですが、どうやら直接16進数の名称を吐き出すことが不可能なようで、どのように行ったらいいか皆目検討がついておりません。 そこで大変恐縮ですが、参考になる手法や、情報がありますサイト等をお教え頂けると幸甚です。 よろしくお願いいたします。

  • C言語でTIFファイルを読み込むプログラムを教えてください。

    C言語でTIFファイルを読み込むプログラムを教えてください。 C言語でTIFファイルを読み込むプログラムを組みたいのですが、テキストや参考書、ネットで調べてもよく分かりません。 もしお分かりになるのでしたらプログラムの一連の流れ(ソースプログラムも書いていただけるとなおさら嬉しいです)を教えていただけると助かります><

  • 【C言語】ファイルを読み込んで16進数で表示する

    ファイルをバイナリモードで読み込んで16進数で表示するプログラムについて質問です。 以下の処理内容が理解できません。どのような処理を行っているのでしょうか?? (xdump.c)********************************* #include <stdio.h> #include <stdlib.h> int main(int argc, char **argv) { int i, j; FILE *fp; if(NULL == (fp = fopen(argv[1], "rb"))) { fprintf(stderr, "Cannot open FILE[%s].\n", argv[1]); exit(1); } for(i=0; i<0x7FFF; ++i) { printf("%08X :", ftell(fp)); for(j=0; j<16; ++j) { int c; c = 0x00FF & getc(fp); if(ferror(fp)) { puts("\a>>>> Read Error ! <<<<"); break; } if(feof(fp)) break; /* 16進数で表示 */ printf(" %2X", c); } printf(" : %08X\n", ftell(fp)-1); /* : */ /* : */ /* 以下省略 */ ****************************************** 上記に関して、 最初のfor文から"c = 0x00FF & getc(fp);"までの処理内容が よくわかりません。どなたかご教授願えますでしょうか?

  • C言語でバイナリファイルの読み込み

    C言語のプログラミングに関する質問です。 x個(分かっている数)のfloat型の数値が入ったバイナリファイルを読み込んで、 要素数[x]のfloat型配列として扱うにはどういったコードを書けばよいのでしょうか? どなたかご教授いただければ幸いです。

  • C言語の関数について困っています

    こんにちは。 C言語で、テキストファイルの行数を数える関数があれば教えて頂けないでしょうか。例えば、以下の3行を含んでいるテキストファイルを対象としたとすれば 123465789123456789 1234567981234579 987654321987654321 関数を実行すれば、3という数字が得られ、 123456  789 123546879  123 123  456789123   123456789123 というテキストファイルであれば、4という数字が得られる。そんな関数をご存知な方は私にご教授願えないでしょうか。どうぞよろしくお願いします。

  • 二回目の右クリックで正しく表示(C言語・API)

    C言語にて、Windows APIのプログラミングをしております。 現在ウィンドウを作成して、右クリックでファイルパスを 読み込み、そのテキストファイルからある文字の数を数えて その数だけ長方形にして表示させるプログラムを作成しております。 そこで、一回目の右クリックでファイルパスの読み込みは成功 したのですが、二回目以降、うまく行きません。 ファイルパスの表示は、何回もファイルパスを呼び出しても、 うまく表示されます。 長方形がうまく表示されないのですが、なぜでしょうか。 ソースはこちらになります。コンパイラはBorland C++ のフリーのものを使用しております。 http://onegaisimasune.web.fc2.com/main4.txt

  • C言語のプログラミングについての質問です

    C言語の課題で数値を入力したらその数に40+して二乗するプログラミングを作りたいのですがソースがいまいちわかりません どなたかご教授お願いします

  • C言語で、2進数を扱うには。

    C言語で、2進数を扱いたいのですが、 よく分かりません。 ためしに、 int a=2,int b=1 で、 int c=a | b printf("answer=%d"),c) とすると、3となります。 a & bだと、0です。 この場合、a,bは2進数変換されて、 計算され、表示は、10進数に 直されて、表示されているようです。 一方、 a=10,b=2とすると、 a | b=10 a & b=2です。 この場合、10は2進数に直されず (そのまま2進数扱い)、 2は2進数に直され、 表示は、a | bはそのまま2進数扱い、 a & bは、10進数に直されています。 (1、0だけだと、勝手に2進数扱い されてしまうのか、とも思うけれど)。 10進数と、2進数の使い分けかたなど、 何か分かりましたら、お願いします。

  • C言語の

    ものすごく基本的な質問をします。 C言語で作ったソースをVBで使用できるものなのですか? DLLをつかえば可能ということを聞いたことがあるのですが・・・・