はじめまして。今回お聞きしたいのは3つの整数を入力すると、それがおおきい順に並べ替えて
表示する,プログラムをつくりたいのですが、どうしたらいいか分からないで困っています。
どうか,教えてください。よろしくお願いします。
どこまで判っていて、どこが判らないか書いていないのではどうお教えして良いのか
分りませんよ
[1] a < b なら交換する
[2] b < c なら交換する
[3] a < b なら交換する
おしまい
1.入力してそのまま出力(表示)することはできるか。
2.2つの整数のどちらが大きいかの比較はできるのか。
3.2つの整数であれば大きい順に交換はできるのか。
4.3つの整数が一発で並び変えられると思っていないか。
ぐらいはわからないと、答えようがないですよ~
皆さんお返事ありがとうぎざいます。
並べ変えは条件判断ということでIF文をつかえばよいのですよね?
3つの数字をn1n2n3とおいて、nの数は%dとして
どちらが大きいかを表示してくれるようにしたらいいのでしょうか?
何度もすみません・・・。
こんにちわ
επιστημηさんがアルゴリズムを提示していただいたので大丈夫かな?
と思ったのですが、やはりだめだったようですね。
こんな感じになると思います。
#include <stdio.h>
#include <stdlib.h>
void myswap( int *i, int *j )
{
int tmp;
tmp = *i;
*i = *j;
*j = tmp;
}
void main( void )
{
int a, b, c;
printf( n1 > );
scanf( %d, &a );
printf( n2 > );
scanf( %d, &b );
printf( n3 > );
scanf( %d, &c );
if( a < b ) myswap( &a, &b );
if( b < c ) myswap( &b, &c );
if( a < b ) myswap( &a, &b );
printf( %d %d %d\n, a, b, c );
}
私も人のことを言える立場じゃないのですが(^^;
アルゴリズムの勉強されたほうがよろしいかと思います。
本屋さんに行けばいろんな本がおいてあります。
プログラムはアルゴリズムとデータ構造の結晶です。
また、最後のコメントから判断するとC/C++の文法知識も乏しいように
見受けられます。基礎知識がないと説明するのも大変なので・・・。
参考(にならんのは百も承知で) C++版
# C++だとこんなのが書けちゃうから、もうCには戻れない...^^;
/*
* trial.cpp
*/
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <functional>
#include <cstdlib>
using namespace std;
int main(int argc, char* argv[]) {
vector<int> data;
transform(argv+1, argv+argc-1, back_inserter(data), atoi);
sort(data.begin(), data.end(), greater<int>());
copy(data.begin(), data.end(), ostream_iterator<int>(cout, ));
return 0;
}
----- 実行結果 ------
>trial 3 6 5 4 7 6 8 7
8 7 6 6 5 4 3
っく、ちょんぼです。
ばつ: transform(argv+1, argv+argc-1, back_inserter(data), atoi);
まる: transform(argv+1, argv+argc, back_inserter(data), atoi);
ときに みほ さん、コンパイラはお持ちなんでしょ?
だったら、
> 並べ変えは条件判断ということでIF文をつかえばよいのですよね?
> 3つの数字をn1n2n3とおいて、nの数は%dとして
> どちらが大きいかを表示してくれるようにしたらいいのでしょうか?
やってみればいいじゃない?
いつ返ってくるかわからない掲示板への回答を待つより
数百倍早いでしょうに。
本当にありがとうございます。
大学ではじめてC言語を習い始めて、混乱してしまっていて。
勉強不足です・・。なのに、親切に教えていただきありがとうございます。
これから、ちょっとずつ理解できるようがんばってみます。
また、壁にぶつかるかもしれませんが、よろしくおねがいします。
多数のお返事恐縮です!!