第4話 降順並び換えなどその2
③ 1次元目をwhile文、2次元目をfor文で実現する昇順プログラム例
#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,max;
i=4;
while(i>0){
max=1000;
for(j=0;j<=i;j++){
if(x[j]>=max){
max=x[j];
jkr=j;
}
}
int w;
w=x[i];
x[i]=x[jkr];
x[jkr]=w;
}
}
参考ダウンロード添付ファイル
④ 1次元目を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,max;
for(i=4;i>0;i--){
max=-100;
j=0;
while(j<=i){
if(x[j]>=max){
max=x[j];
jkr=j;
}
j++;
}
int w;
w=x[i];
x[i]=x[jkr];
x[jkr]=w;
}
}
参考ダウンロード添付ファイル
次話では、並び換えの2番目の方法について説明します。