• ベストアンサー

問題がとけません

以下の問題が解けません。 わかる方、教えていただけないでしょうか? ・キーボードから3整数を読み込み,小さい順に出力せよ。 ヒント------------------------------------------------- キーボードから読み込む変数をa,b,c,出力する変数をx,y,z(x<y<z)とするとよい かもしれない。 プログラムの構造は次のようになる。 #include <stdio.h> int main() { int a,b,c,x,y,z; scanf("%d%d%d",&a,&b,&c); ...//ここが本体 printf("%d %d %d\n",x,y,z); return 0; } もちろん,目的が達成されるなら,上の例のようにならなくても良い。 

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

  • ベストアンサー
回答No.1

>ヒント------------------------------------------------- >キーボードから読み込む変数をa,b,c,出力する変数をx,y,z(x<y<z)とするとよい かもしれない。 の処理を実装するだけです。 a、b、cそれぞれを比較し、小さい順にx、y、zに入れる処理を作成するだけです。 この問題は、「比較」の条件分さえわかれば解けるものです。 「比較の制御文すらわからない」なら、それがわからないとはっきりと質問してください。

naka0129
質問者

お礼

わかりにくい質問で申し訳ございませんでした。比較の制御文がわかりませんので教えていただけますでしょうか?

その他の回答 (6)

  • 1108435
  • ベストアンサー率43% (94/217)
回答No.7

#6さんへ比較は3回ですよ。6回の比較とは書いていないはずですけど。一応全体ではなくif文の構成は考えてから書いてあります。

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.6

>#5さん >つまり(a>b かつ a>c)場合、または(b>aかつb>c)または(c>aかつc>b)ということ。 3数の大小関係を求めるのに、6回の比較が必要だということですか? 3回でいいはずですけれど…。

  • 1108435
  • ベストアンサー率43% (94/217)
回答No.5

qsortを使ってしまえば簡単だろうけど、おそらく出題者の意図としてはif文による条件作成の感じがする。 ゆえに入力されたa,b,cに対してif文で3行、入子構造のif文を書けといっているのではないかな?つまり(a>b かつ a>c)場合、または(b>aかつb>c)または(c>aかつc>b)ということ。単純な繰り返しだけれどif文とその条件作成という観点からすると、面白い問題かな(実作業では使わないだろうけど)。

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

すでに指摘があるように、キーボードから直接入力する方法は、標準規格では規定されていません。処理系もそうですが、質問の真意を補足してください。 また、通常キーボードから直接読み取れるのは、キーの押下状態やスキャンコード程度です。読み込む整数というのは、入力ポートの生の値やスキャンコードでよいのでしょうか? > int main() { > ...//ここが本体 これらから判断してC++だと思いますが、その認識であっていますか?

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.3

出題内容は満たすはずだけど、このまま提出するとおそらく先生には怒られる回答例。No.2さんの指摘はとりあえず置いておきます。 #include <stdio.h> #include <stdlib.h> int cmpint(const void *p, const void *q) { return *((int *)p) - *((int *)q); } int main() { int a,b,c,x,y,z; int array[3]; scanf("%d%d%d",&a,&b,&c); array[0] = a; array[1] = b; array[2] = c; qsort(array, sizeof(array)/sizeof(int), sizeof(int), cmpint); x = array[0]; y = array[1]; z = array[2]; printf("%d %d %d\n",x,y,z); return 0; }

回答No.2

標準Cおよび標準C++に,キーボードから入力を受け付けるための方法は用意されていません。 # 標準入力はキーボードとは限らない。 このため,まずは環境 (OS,コンパイラ) を特定してください。

関連するQ&A