随机产生两组整数,每组整数中元素互不相同,这两组数按值递增有序。设计程序,将这两组数合并成按值递减有序的一组数,要求合并的新的一组数中,相同的元素只有一个。
来源:互联网 发布:北京知豆电动汽车4s店 编辑:程序博客网 时间:2024/06/01 07:43
2、随机产生两组整数,每组整数中元素互不相同,这两组数按值递增有序。设计程序,将这两组数合并成按值递减有序的一组数,要求合并的新的一组数中,相同的元素只有一个。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define N 40
void S(int a[],int n){
//随机产生
int i,j,b;
int flag=1;
srand(time(0));
for (i=0;i<n;i++){
b=rand()%90+10;
for (j=0;j<i;j++){
if (b==a[j])
flag=0;
}
if (flag){
a[i]=b;
}
}
}
void Sort(int a[],int n){
//排序
int i,j,t;
for (i=0;i<n-1;i++){
for (j=0;j<n-i-1;j++){
if (a[j]>a[j+1]){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
}
void Merge(int a[],int b[],int c[],int m,int n){
//合并
int i,j,k;
i=0;j=0;k=0;
while(i<m&&j<n){
if(a[i]<=b[j]){
c[k++]=a[i++];
}
else
c[k++]=b[j++];
}
while(i<m){
c[k++]=a[i++];
}
while(j<n){
c[k++]=b[j++];
}
}
void Rev(int a[],int n){
//就地逆置
int low,high;
low=0;
high=n-1;
int temp;
while(low<high){
temp=a[low];
a[low]=a[high];
a[high]=temp;
low++;
high--;
}
}
void Output(int a[],int n){
int i;
for(i=0;i<n;i++){
printf("%3d",a[i]);
}
printf("\n");
}
int main(){
int a[N],b[N],c[N];
int m,n;
printf("输入整数个数:\n");
scanf("%d",&m);
S(a,m);
Sort(a,m);
Output(a,m);
printf("输入另一个数组整数个数:\n");
scanf("%d",&n);
S(b,n);
Sort(b,n);
Output(b,n);
Merge(a,b,c,m,n);
Rev(c,m+n);
Output(c,m+n);
return 0;
}
- 随机产生两组整数,每组整数中元素互不相同,这两组数按值递增有序。设计程序,将这两组数合并成按值递减有序的一组数,要求合并的新的一组数中,相同的元素只有一个。
- unity中利用C#产生随机不相同的一组数
- 从n个整数中取出其中k个,排成一组有序数的排序算法
- 假设有两个按元素值递增有序排列的线性表A和B,均以单链表作存储结构,请编写算法将A表和B表归并为一个按元素值递减 有序(即非递增有序,允许表中含有值相同的元素)排列的线性表C,并要求利用原装(即A表和
- 2个整数有序数组中相同元素的个数--java实现
- 【win32程序控制台】练习题:用随机函数产生10个互不相同的两位整数,存到一维数组中,并找出其中的素数
- 将两个递增的链表合并成一个递减的链表(相同的元素只留下一个),并要求利用原表结点
- 已知线性表中元素以值递增有序排列,并以单链表作为存储结构,设计一个算法,删除表中值相同的多余元素
- 写程序。设ha和hb分别是两个带头结点的非递减有序单链表的头指针,试设计算法,将这两个有序链表合并成一个非递增有序的单链表。要求使用原链表空间,
- 找出两个有序数组中相同的元素
- 求一组整数中最小的两个数
- 找出两串有序数组中相同的元素, 并存入新数组中的目前最快方法
- 建立链表,在一组有序数种添加一个数,再次组成一组有序的数
- 数据结构----实现对2个链表La,Lb有序合并,对相同的元素进行删除,
- 随机产生不重复的一组数
- 合并列表中有相同元素的列表
- 有n个有序的整数放在一维数组中,输入一个数,将该数放入数组合适的位置,使插入该数后,数组中的元素仍然有序;
- 已知两个链表 la和 lb,其元素值递增排序。编程将la和lb合并成一个递减有序(相同值元素只保留一个)的链表lc。(北方名校经典试题) 本题选做
- 10.21离线赛
- Oracle之分区表和索引优化,分区表字段回表
- C++风格_异常
- Python practice
- java 中 问题及其他
- 随机产生两组整数,每组整数中元素互不相同,这两组数按值递增有序。设计程序,将这两组数合并成按值递减有序的一组数,要求合并的新的一组数中,相同的元素只有一个。
- tp3的单字母函数在thinkphp5.0改为助手函数简介
- Oracle学习笔记 字符集概述
- 51nod 1163 最高的奖励
- 基于TensorFlow的机器学习(1) -- 基础介绍
- Java中@Override的作用
- robots.txt
- [noip2015]跳石头 题解
- i2c适配器驱动源码分析(i2c总线驱动)