/*C++面向对象程序设计(第二版)
*杜茂康,李昌兵,曹慧英,王永编著
*电子工业出版社,2011年7月第一次印刷
*ISBN978-7-121-13625-2,定价:42元
*第58页习题11的由Adam本人自己编写参考程序
*程序用随机数生成函数rand()给数组初始化
*在显示数组元素的子程序displayArray中
*调用求数组最小元素的子程序min()
*在输出数组各元素的后面输出最小元素
*/
#include <iostream>
#include <cstdlib>
#include <iomanip>
#include <ctime>
using namespace std;
const int MAXNUMBER=10;
/*
*自己定义生成随机数的子程序
*通过用当前系统时间对应的总秒数初始化随机数发生器的种子
*因为连续调用随机数生成器的间隔时间不到一秒
*导致连续产生多个随机数都使用了相同的种子
*所以连续产生了很多相同的随机数
*如果不考虑计算机运算速度的提高
*可以用系统时间的毫秒数或微妙数作随机数的种子
*/
int myRand(){
time_t now_time;
now_time = time(NULL);
srand(now_time);
return rand();
}
void initial(int x[]){
for(int i=0;i<MAXNUMBER;i++){
x[i]=rand();
}
}
void initial(double x[]){
for(int i=0;i<MAXNUMBER;i++){
x[i]=rand()/3.0;
}
}
void initial(float x[]){
for(int i=0;i<MAXNUMBER;i++){
x[i]=rand()/3.0f;
}
}
void initial(long x[]){
for(int i=0;i<MAXNUMBER;i++){
x[i]=rand()*7;
}
}
int min(int x[]){
int index=0; //变量index存储最小元素的下标,初始化为0
for(int i=1;i<MAXNUMBER;i++){
if(x[i]<x[index]){
index=i; //如果元素x[i]小于下标为index的元素x[index],则把index替换为i
}
}
return index;
}
int min(double x[]){
int index=0; //变量index存储最小元素的下标,初始化为0
for(int i=1;i<MAXNUMBER;i++){
if(x[i]<x[index]){
index=i; //如果元素x[i]小于下标为index的元素x[index],则把index替换为i
}
}
return index;
}
int min(float x[]){
int index=0; //变量index存储最小元素的下标,初始化为0
for(int i=1;i<MAXNUMBER;i++){
if(x[i]<x[index]){
index=i; //如果元素x[i]小于下标为index的元素x[index],则把index替换为i
}
}
return index;
}
int min(long x[]){
int index=0;
for(int i=1;i<MAXNUMBER;i++){
if(x[index]>x[i]){
index=i; //如果index对应的元素x[index]大于第i个元素,则把index替换为i
}
}
return index;
}
void displayArray(int x[]){
cout<<endl<<"数组中int类型元素分别是:\n"
<<setiosflags(ios::left);
for(int i=0;i<MAXNUMBER;i++){
cout<<i<<":"<<setw(8)<<x[i]<<" ";
if(((i+1)%5)==0){
cout<<endl;
}
}
cout<<"int类型数组中数值最小的元素是:"
<<min(x)<<":"<<setw(8)<<x[min(x)]
<<resetiosflags(ios::left)<<endl;
}
void displayArray(double x[]){
cout<<endl<<"数组中double类型元素分别是:\n"
<<setiosflags(ios::left);
for(int i=0;i<MAXNUMBER;i++){
cout<<i<<":"<<setw(10)<<x[i]<<" ";
if(!((i+1)%5)){
cout<<endl;
}
}
cout<<"doubl类型数组中数值最小的元素是:"
<<min(x)<<":"<<setw(10)<<x[min(x)]
<<resetiosflags(ios::left)<<endl;
}
void displayArray(float x[]){
cout<<endl<<"数组中float类型元素分别是:\n";
cout.setf(ios::left);
for(int i=0;i<MAXNUMBER;i++){
cout<<i<<":";
cout.width(10);
cout<<x[i]<<" ";
if(((i+1)%5)==0){
cout<<endl;
}
}
cout<<"floa类型数组中数值最小的元素是:"
<<min(x)<<":";
cout.width(10);
cout<<x[min(x)]<<resetiosflags(ios::left)
<<endl;
}
void displayArray(long x[]){
cout<<endl<<"数组中long类型元素分别是:\n"
<<setiosflags(ios::left);
for(int i=0;i<MAXNUMBER;i++){
cout<<i<<":"<<setw(8)<<x[i]<<" ";
if(!((i+1)%5)){ //每输出五个元素换行
cout<<endl;
}
}
cout<<"long类型数组中数值最小的元素是:"
<<min(x)<<":"<<setw(8)<<x[min(x)]
<<resetiosflags(ios::left)<<endl;
}
void main(){
srand(time(NULL)); //用当前系统时间的秒数初始化随机数生成器的种子,也就是起始值
int a[MAXNUMBER];
double b[MAXNUMBER];
float c[MAXNUMBER];
long d[MAXNUMBER];
initial(a);
displayArray(a);
initial(b);
displayArray(b);
initial(c);
displayArray(c);
initial(d);
displayArray(d);
/*
cout<<rand()<<endl;
time_t now_time;
now_time = time(NULL);
cout<<now_time;
*/
}C++函数重载示例程序
最新推荐文章于 2023-04-24 13:01:49 发布
812

被折叠的 条评论
为什么被折叠?



