小さい順に並べ替えるプログラム

解決済みの質問

小さい順に並べ替えるプログラム

コンピュータに10個のてきとうな数字を入力させ
それを、小さい順に並べ替えるプログラムです。
以下のようにしたのですが、エラー0 警告0 なのに動きません。
どこが違うのでしょうか?

#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;

const int NUM_ELEMENTS=10;

void sort(int*);
void generation(int*);
void exchange(int&,int&);

void sort(int* a){
int min, locate, i, j;

for(i=0; i<NUM_ELEMENTS-1; i++){
min = a[i];
locate = i;
for(j=i; j<NUM_ELEMENTS; j++){
if(min > a[j]){
min = a[j];
locate = j;
}
}
exchange(a[i],a[locate]);
}
}

void generation(int* a){
int i;
srand(time(NULL));

for(i=0; i<NUM_ELEMENTS; i++){
a[i] = rand();
}
}

void exchange(int& a,int& b){
int t;
t=a;
a=b;
b=t;
}


int main(){
int data[NUM_ELEMENTS];
generation(data);
sort(data);
return 0;
}

投稿日時 - 2002-05-28 11:13:51

QNo.280108

困ってます

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

動いていますが、結果を画面に表示させる部分が無いため
画面上には何も出ません。
やりたいことを全て書かないとコンピュータは
何もしてくれません(^^;

例えば,sort(data);の次あたりに
int i;
for ( i=0 ; i<NUM_ELEMENTS ; i++ )
printf("data[%d] = %d\n",i,data[i]);
のような物が必要です。

投稿日時 - 2002-05-28 12:12:44

お礼

現在、どの構文が何をしてくれるのか
混乱中です・・・。

なんで、そうなるの??
ということだらけで・・・。
がんばって勉強します。

ありがとうございました。

投稿日時 - 2002-05-29 13:05:55

ANo.3

0人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

ベストアンサー以外の回答(3件中 1~3件目)

ANo.4

> プログラムの実行をすると、背景が黒い画面になりますよね?
> そこに、Press any key to continue
> と表示されます。
これは恐らく正常に動作している状態だと思います。
chi-nao_chanさんのプログラムは、要約すると、
1.何も入力を受付けず
2.いくつかの数値を自動生成して
3.その数値をソートし、
4.何も出力(表示)せずに
5.終了する
プログラムなのです。
これでは、画面を眺めても何をしているか分かりません。
出力についてはterra5さんの回答で良いと思います。
入力については(自動生成で良いのならば修正の必要はありませんが、
質問は「入力」となっているので)いくつかのやり方がありますが、例えば
 for(i=0; i<NUM_ELEMENTS; i++){
  scanf("%d",&data[i]);
 }
のようにすればできます。

投稿日時 - 2002-05-28 13:47:31

お礼

はい・・・。
ありがとうございました。

いろんな文字や記号が出てきて・・・
爆発寸前です(笑)

投稿日時 - 2002-05-29 13:07:31

ANo.2

回答します、出入力関数ってもしかすると、
いやもしかしなくて、
#include<stdio.h>
のことだと思います。
これがなければ出入力ができません。
これは一番上にかけばいいです。

投稿日時 - 2002-05-28 11:48:53

お礼

ありがとうございました。
amuro_78さんが回答してくださったように一番上に
#include<stdio.h>をかいたのですが、
結果は変わりませんでした。
ほかに何か必要なものとかありますか?

投稿日時 - 2002-05-28 11:54:55

ANo.1

動かないとはどういう状態でしょう。
見たところ、入出力に関する関数が見当たりませんが。

投稿日時 - 2002-05-28 11:19:29

お礼

プログラムの実行をすると、背景が黒い画面になりますよね?
そこに、Press any key to continue
と表示されます。

入出力に関する関数とはどこにかくのですか?

投稿日時 - 2002-05-28 11:34:34

あわせてチェックしたい
  • ctime_r宣言が無いのに何故かコンパイルが通る ...
  • C++での <iostream.h>と<iostream>とusingnamespaceの関係等を教えてください。 ...
  • iostreamについて ...
PR
【回答募集中】花粉にひと言、物申す![ 詳細 ]

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら