C++构造一个包含若干随机数的整数数组并将它按从小到大顺序排序,随机数的范围是0~max

这篇具有很好参考价值的文章主要介绍了C++构造一个包含若干随机数的整数数组并将它按从小到大顺序排序,随机数的范围是0~max。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目:

构造一个包含若干随机数的整数数组并将它按从小到大顺序排序,

随机数的范围是0~max,要求必须包含下列函数。

(1)int* random(int n,int max) 

 random方法根据参数n和max产生一个有n个随机整数的动态数组,每个随机数的范围是0~max。

 random的返回值是产生的动态数组的起始地址。

(2)void sort(int a[],int n)

     sort函数将有n个元素的数组排序

(3)void output_array(int a[],int n)

     output_array函数输出有n个元素的数组

(4) int* merge(int x[],int y[],int m,int n)

      merge函数将两个已排好序数组合并成一个排好序数组并返回该数组的起始地址。

(5)main函数如下:

     void main()

     {

int *x,m=10,i,*y,*z,n=20;

        x=random(m,100);

y=random(n,100);

        sort(x,m);

sort(y,n);   

        output_array(x,m);

        output_array(y,n); 

z=merge(x,y,m,n);

output_array(z,m+n);

delete []x;

delete []y;

delete []z;

     }

要求提示:产生随机数用rand()函数,要在程序前写#include <cmath>,C++和C语言的头文件不同

      产生动态数组需要用到new和delete。

      merge函数中也需要产生一个新的动态数组,这个数组用来存放两个数组合并后的数据

     merge函数中将两个已排好序数组合并成一个排好序数组,重新采用排序算法并不是一个好的方法,因为效率较低。想想两个已经按身高排好队的队伍合并到一起的时候采用什么方法?

 文章来源地址https://www.toymoban.com/news/detail-664989.html

 

代码:

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

int *random(int n, int max)
{	int i;
	int *d=new int [n];
	srand((int)rand());
	for (i = 0; i < n; i++)
	{	d[i] = rand() % 100;
	}
	for (i = 0; i < n; i++)
	{	cout << d[i] << " ";
	}
	return d;
}

void sort(int *d, int n)
{	int i, j, t;
	for (i = 0; i < n ; i++)
	{	for (j = 0; j < n - 1 - i; j++)
		{	if (d[j] > d[j + 1])
			{	t = d[j];
				d[j] = d[j + 1];
				d[j + 1] = t;
			}
		}
	}
}

void output_array(int a[], int n)
{	int i;
	for (i = 0; i < n; i++)
	{	cout << a[i] << " ";
	}
}

int*merge(int n,int m,int a[],int b[])
{
	int i=0,j=0,k=0;
	int *p=new int [30];
	while(i<20&&j<10)
	{
		if(a[i]<=b[j])
		{
			p[k]=a[i];
			i++;
			k++;
		}
		else
		{
			p[k]=b[j];
			j++;
			k++;
		}
	}
	for(i;i<n;i++)
	{
		p[k]=a[i];

		k++;
	}
	for(j;j<m;j++)
	{
		p[k]=b[j];
		k++;
	}
	return p;
}
int main()
{	int *x, *y,*z,m = 10, n = 20;
	x = random(n, 100);
	cout << endl;
	cout << "-------------" << endl;
	y = random(m, 100);
	cout << endl;
	cout << "-------------" << endl;
	sort(x, n);
	cout<<endl;
	sort(y,m);
	output_array(y,m);
	cout << endl;
	cout << "-------------" << endl;
	output_array(x, n);
	cout << endl;
	cout << "-------------" << endl;
	z=merge(n,m,x,y);
	output_array(z,m+n);
	cout<<endl;
	delete []x;
	delete []y;
	delete []z;
	return 0;
}

 

 

到了这里,关于C++构造一个包含若干随机数的整数数组并将它按从小到大顺序排序,随机数的范围是0~max的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++随机数生成:std标准库和Qt自带方法

    std::rand() 是C++中的一个随机数函数,它生成一个范围在0到 RAND_MAX 之间的伪随机整数。 在每次程序运行时,通常需要使用不同的种子值来初始化随机数生成器。可以使用 std::srand() 函数来设置种子值。 设置种子的目的是为了引入随机性,使得每次程序运行时生成不同的随机数

    2024年01月16日
    浏览(45)
  • 【C++】详解用标准库的std::mt19937生成随机数

    2023年8月16日,周三晚上 写了1个半小时 目录 概述 英文文档 什么是mt19937 什么是状态大小 头文件 std::mt19937的常用成员函数 1. 构造函数: 2. 种子操作函数: 3. 随机数生成函数: 4. 辅助函数: 生成种子值 方法1:使用std::random_device 方法2:使用时间戳 举例说明 英文文档 std:

    2024年01月17日
    浏览(31)
  • C++ 标准库随机数:std::default_random_engine

    库头文件 #include random  

    2024年02月08日
    浏览(38)
  • Opencv C++图像处理:矩阵Mat + 随机数RNG + 计算耗时 + 鼠标事件

    数据类型 字节数 取值范围 bool型(布尔型) 1 [0 or 1] BOOL型(int型) 4 [TRUE or FALSE] sbyte型(有符号8位整数) 1 [128 ~ 127] bytet型(无符号8位整数) 8U 2 [0 ~ 255] short型(有符号16位整数) 16S 2 [-32,768 ~ 32,767] ushort型(无符号16位整数) 16U 2 [0 ~ 65,535] int型(有符号32位整数) 32S 4 [

    2024年02月03日
    浏览(37)
  • 第03章_流程控制语句(顺序结构,分支语句,循环语句,break,continue,Scanner,如何获取一个随机数)

    流程控制语句是用来控制程序中各 语句执行顺序 的语句,可以把语句组合成能 完成一定功能 的小逻辑模块。 程序设计中规定的 三种 流程结构,即: 顺序结构 程序从上到下逐行地执行,中间没有任何判断和跳转。 分支结构 根据条件,选择性地执行某段代码。 有 if…els

    2024年01月22日
    浏览(42)
  • Unity 中的随机数的基础常用的随机数生成方法

    在 Unity 中,可以使用 Random 类来生成随机数。以下是一些常用的随机数生成方法: Random.Range(min, max):生成一个在[min, max)范围内的随机整数。 Random.value:生成一个在[0, 1)范围内的随机浮点数。 Random.insideUnitCircle:生成一个在单位圆内的随机二维向量。 Random.insideUnitSphere:生成

    2024年02月20日
    浏览(41)
  • JS - 生成随机数的方法汇总(不同范围、类型的随机数)

    (1)使用 random() 方法可以返回一个介于 0 ~ 1 之间的伪随机数(包括 0,不包括 1)。 (2)下面是一个测试样例 (1)这种最简单,因为和 random 的特点保持一致。只需使用如下公式即可: (2)比如下面生成 [10,15) 范围内的随机浮点数。 因为 random 的特点,要取得这几个区间

    2023年04月08日
    浏览(37)
  • Hutool 生成随机数和随机字符串

    官方文档: https://www.hutool.cn/docs/#/core/工具类/随机工具-RandomUtil 整理完毕,完结撒花~

    2024年02月16日
    浏览(42)
  • MySQL、Oracle 生成随机ID、随机数、随机字符串

    UUID():是由128位的数字组成的全局唯一标识符。每次都生成一个新的随机数。 它通常以32个十六进制数的形式表示,分为5个部分,以连字符分隔。 UUID的长度是36个字符,包括32个十六进制数字和4个连字符。 UUID的标准格式是由 8-4-4-4-12 个十六进制数字组成的,其中每个部分的

    2024年01月16日
    浏览(43)
  • java生成随机数

       bound 必须是正数。 以下代码生成的是 0 到 30 的随机数。 生成区间的随机数:[最小值,最大值] 学的不是技术,更是梦想!!!

    2024年02月07日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包