问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言两个数组里边有十个元素把两个合并成一个并排序

发布网友 发布时间:2022-11-10 09:24

我来回答

3个回答

热心网友 时间:2023-11-24 07:49

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define NUM 10

void paixu(int * array, int n)//选择排序法
{
int i, j, temp, pos;
for(i=0;i<n;i++)
{
pos = i;
for(j=i+1;j<n;j++) if(array[pos] > array[j]) pos = j;
if(pos != i) {temp = array[pos]; array[pos] = array[i]; array[i] = temp;}
}
}
void hebing(int * array, const int * arrA, int nA, const int * arrB, int nB)//合并数据,这个是并归排序的基本函数,里面加上递归调用就是并归排序
{
int pos = 0, posA = 0, posB = 0;
while(posA<nA && posB < nB)
{
if(arrA[posA] < arrB[posB]) array[pos++] = arrA[posA++];
else array[pos++] = arrB[posB++];
}
if(posA<nA) while(posA<nA) array[pos++] = arrA[posA++];
if(posB<nB) while(posB<nB) array[pos++] = arrB[posB++];
}

void print(int *a, int n)
{
int i;
for(i=0; i<n;i++)
{
printf("%6d", a[i]);
if(i%10 == 9) printf("\n");
}
}

int main()
{
int a[NUM], b[NUM], c[NUM*2], i;

srand(time(NULL));
for(i=0;i<NUM;i++) {a[i] = rand() & 0xF; b[i] = rand() & 0xF;}//随机数作为输入
printf("原始数据:\n");
print(a, NUM);
print(b, NUM);
paixu(a, NUM);
paixu(b, NUM);
printf("排序后的数据:\n");
print(a, NUM);
print(b, NUM);
hebing(c, a, NUM, b, NUM);
printf("合并后的数据:\n");
print(c, NUM*2);
return 0;
}

热心网友 时间:2023-11-24 07:50

#include <stdio.h>

#define N 10

int main( void )
{
int a[N], b[N],c[2*N];
int i, j, temp;

printf( "请输入数组a的值:\n");

for( i = 0; i < N; i++ )
scanf( "%d", &a[i] );

printf( "请输入数组b的值:\n");
for( i = 0; i < N; i++ )
scanf( "%d", &b[i] );

for( i = 0; i < N; i++ ){
c[i] = a[i];
c[i+N] = b[i];
}

for(i = 0; i < 2 * N - 1; i++ )
for( j = i + 1; j < 2 * N; j++ )
if( c[i] > c[j] ){
temp = c[i];
c[i] = c[j];
c[j] =temp;
}

printf( "a数组的各个元素为:\n" );
for( i = 0; i < N; i++ )
printf( "%d\t", a[i] );

printf( "\nb数组的各个元素为:\n" );
for( i = 0; i < N; i++ )
printf( "%d\t", b[i] );

printf( "\nc数组的各个元素为:\n" );
for( i = 0; i < 2 * N; i++ )
printf( "%d\t", c[i] );

return 0;
}

热心网友 时间:2023-11-24 07:49

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define NUM 10

void paixu(int * array, int n)//选择排序法
{
int i, j, temp, pos;
for(i=0;i<n;i++)
{
pos = i;
for(j=i+1;j<n;j++) if(array[pos] > array[j]) pos = j;
if(pos != i) {temp = array[pos]; array[pos] = array[i]; array[i] = temp;}
}
}
void hebing(int * array, const int * arrA, int nA, const int * arrB, int nB)//合并数据,这个是并归排序的基本函数,里面加上递归调用就是并归排序
{
int pos = 0, posA = 0, posB = 0;
while(posA<nA && posB < nB)
{
if(arrA[posA] < arrB[posB]) array[pos++] = arrA[posA++];
else array[pos++] = arrB[posB++];
}
if(posA<nA) while(posA<nA) array[pos++] = arrA[posA++];
if(posB<nB) while(posB<nB) array[pos++] = arrB[posB++];
}

void print(int *a, int n)
{
int i;
for(i=0; i<n;i++)
{
printf("%6d", a[i]);
if(i%10 == 9) printf("\n");
}
}

int main()
{
int a[NUM], b[NUM], c[NUM*2], i;

srand(time(NULL));
for(i=0;i<NUM;i++) {a[i] = rand() & 0xF; b[i] = rand() & 0xF;}//随机数作为输入
printf("原始数据:\n");
print(a, NUM);
print(b, NUM);
paixu(a, NUM);
paixu(b, NUM);
printf("排序后的数据:\n");
print(a, NUM);
print(b, NUM);
hebing(c, a, NUM, b, NUM);
printf("合并后的数据:\n");
print(c, NUM*2);
return 0;
}

热心网友 时间:2023-11-24 07:50

#include<stdio.h>
#define SWAP(a,b) {int swap = 0;swap=a; a=b; b=swap;}
void sort_fun(int *in1, int *in2, int *out)
{
int i = 0;
int j = 0;
for (i=0; i<10; i++)//将两个数组合并为一个数组
{
out[j++] = in1[i];
out[j++] = in2[i];
}
for (i=0; i<19; i++)
{
for (j=i+1; j<20; j++)
{
if(out[i]<out[j])
{
SWAP(out[i],out[j]);//数组3排序
}
}
}
}
int main()
{
int a[10]={1,3,2,20,5,3,7,3,7,9};
int b[10]={2,4,2,5,1,0,8,5,3,5};
int c[20]={0};
int i,j;
sort_fun(a, b, c);
for(i=0; i<10; i++)
{
printf("%d ",a[i]);
}
printf("\n");
for(i=0; i<10; i++)
{
printf("%d ",b[i]);
}
printf("\n");
for(i=0; i<20; i++)
{
printf("%d ",c[i]);
}
printf("\n");
return 0;
}

热心网友 时间:2023-11-24 07:50

#include <stdio.h>

#define N 10

int main( void )
{
int a[N], b[N],c[2*N];
int i, j, temp;

printf( "请输入数组a的值:\n");

for( i = 0; i < N; i++ )
scanf( "%d", &a[i] );

printf( "请输入数组b的值:\n");
for( i = 0; i < N; i++ )
scanf( "%d", &b[i] );

for( i = 0; i < N; i++ ){
c[i] = a[i];
c[i+N] = b[i];
}

for(i = 0; i < 2 * N - 1; i++ )
for( j = i + 1; j < 2 * N; j++ )
if( c[i] > c[j] ){
temp = c[i];
c[i] = c[j];
c[j] =temp;
}

printf( "a数组的各个元素为:\n" );
for( i = 0; i < N; i++ )
printf( "%d\t", a[i] );

printf( "\nb数组的各个元素为:\n" );
for( i = 0; i < N; i++ )
printf( "%d\t", b[i] );

printf( "\nc数组的各个元素为:\n" );
for( i = 0; i < 2 * N; i++ )
printf( "%d\t", c[i] );

return 0;
}

热心网友 时间:2023-11-24 07:50

#include<stdio.h>
#define SWAP(a,b) {int swap = 0;swap=a; a=b; b=swap;}
void sort_fun(int *in1, int *in2, int *out)
{
int i = 0;
int j = 0;
for (i=0; i<10; i++)//将两个数组合并为一个数组
{
out[j++] = in1[i];
out[j++] = in2[i];
}
for (i=0; i<19; i++)
{
for (j=i+1; j<20; j++)
{
if(out[i]<out[j])
{
SWAP(out[i],out[j]);//数组3排序
}
}
}
}
int main()
{
int a[10]={1,3,2,20,5,3,7,3,7,9};
int b[10]={2,4,2,5,1,0,8,5,3,5};
int c[20]={0};
int i,j;
sort_fun(a, b, c);
for(i=0; i<10; i++)
{
printf("%d ",a[i]);
}
printf("\n");
for(i=0; i<10; i++)
{
printf("%d ",b[i]);
}
printf("\n");
for(i=0; i<20; i++)
{
printf("%d ",c[i]);
}
printf("\n");
return 0;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
石璜镇历史演变 ...突突的声音,排气管还冒黑烟,有时走也是走走停停的, 我手机型号步步高V206的,手机的内存U盘显示以满但我查看了手机,手机里 ... 步步高v206,我想下载手机英语,希望各位指点指点,哪里有下载,下载后具体... 步步高V206B手机怎么下载java软件 如何通过化妆修饰不同脸型和鼻型? 最近我的手机总是莫名收到一条短信,说的SIM卡已被更换,这是怎么... 丈母娘和女婿什么相处模式最和谐? 女婿怎么跟岳父岳母搞好关系? 诛仙2中宠物怎样恢复到绑定前 笃笃是什么意思 的的笃笃怎么读 的的笃笃如何读 3d溜溜网下载软件百度云盘里没有 ug怎么出图 如何用UG快速出图 十口相传的意思和造句 求仙境传说里纯SI重炮武僧的技能加点~ 总胆红素39。b超正常。肝功其他均正常怎么办 肝功能检测,总胆红素和间接胆红素高,总胆红素39(0-22),直接胆红素15.8(0-10),其他都正常,是怎么回事? 总胆红素39 高是怎么回事,和肝功能有关吗 全国有哪些税收洼地、税收优惠*、税收扶持比例、税率税负是多少 幼儿园信息智能化管理平台,指的是什么? 手机传感器都能做什么? 桃子水开封后多久不能用?桃子水开封后多久变质? 托管班招生宣传语简短 我想问一下黄金珠宝行业消费税怎么算? 什么叫带料加工的金银首饰 唐羽荨名字好不好? 陈梓荨我女儿这个名字好不好。因为是全中国第一个吧。 在邢钢工作咋样,好进不,大专学历,邢台的, C语言链表排序和合并 孔子对鬼神持什么态度 题:挥杆!向远方——访女子高尔夫新星殷小雯 砂仁,白豆蔻,草果,山楂一起磨粉能治疗啥 颍上古代是国都吗? 安徽颖上县属于哪个市 求颍上县志??? airpods可以调节音量大小吗 photoshop怎么做文字发光 北京哪家养殖基地有赛级金毛犬 珠海市哪里有金毛巡回犬养殖基地 犬星名犬养殖基地是不是骗子 cordini什么意思 仿皮沙发手摸感到粘手 皮沙发粘手怎么办 中国南方有哪些粗粮? 支付宝商家关联账号在哪里看 腾讯会议禁言的人窗口怎么最大化 谁知道帝国时代3 亚洲王朝 怎么制作地图啊? 帝国时代3亚洲王朝,我想自己做一个地图,然后拿到多人游戏里面和朋友一起局域网联机玩,应该怎么弄,详