第3話 降順並び換えなどその1
① 大きい順に並べ換えるを実現するプログラム例
#include<iostream>
#include<ctime>
using namespace std;
void f(int* x); //データ作成関数
void g(int* x); //データ並び換え関数
void h(int* x); //データ表示関数
void main(){
srand(time(NULL));
int x[5];
f(x);
h(x);
g(x);
h(x);
cout<<"プロジェクト終了"<<endl;
}
void f(int* x){
int i;
for(i=0;i<5;i++)x[i]=rand()%100;
}
void h(int* x){
int i;
for(i=0;i<5;i++)cout<<x[i]<<" ";
cout<<endl;
}
void g(int* x){
int i,j,jkr,min;
for(i=0;i<5;i++){
min=1000;
for(j=0;j<5-i;j++){
if(x[j]<=min){
min=x[j];
jkr=j;
}
}
int w;
w=x[4-i];
x[4-i]=x[jkr];
x[jkr]=w;
}
}
参考ダウンロード添付ファイル
では、皆さん次の課題に挑戦して下さい。
② 2次元for文ではなく、2次元while文で実現する降順プログラム例
#include<iostream>
#include<ctime>
using namespace std;
void f(int* x); //データ作成関数
void g(int* x); //データ並び換え関数
void h(int* x); //データ表示関数
void main(){
srand(time(NULL));
int x[5];
f(x);
h(x);
g(x);
h(x);
cout<<"プロジェクト終了"<<endl;
}
void f(int* x){
int i;
for(i=0;i<5;i++)x[i]=rand()%100;
}
void h(int* x){
int i;
for(i=0;i<5;i++)cout<<x[i]<<" ";
cout<<endl;
}
void g(int* x){
int i,j,jkr,min;
i=4;
while(i>0){
min=1000;
j=0;
while(j<=i){
if(x[j]<=min){
min=x[j];
jkr=j;
}
j++;
}
int w;
w=x[i];
x[i]=x[jkr];
x[jkr]=w;
}
}
参考ダウンロード添付ファイル
③④は次話にします。