解決済みの質問
コンピュータに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
動いていますが、結果を画面に表示させる部分が無いため
画面上には何も出ません。
やりたいことを全て書かないとコンピュータは
何もしてくれません(^^;
例えば,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
0人が「このQ&Aが役に立った」と投票しています
ベストアンサー以外の回答(3件中 1~3件目)
> プログラムの実行をすると、背景が黒い画面になりますよね?
> そこに、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