初学C语言。帮帮忙。。 编一个程序 将两个按升序排列的数列仍按升序合并到另一数组中要求每个数一次到

初学C语言。帮帮忙。。
编一个程序 将两个按升序排列的数列仍按升序合并到另一数组中要求每个数一次到位不得在新数组中再排列。

用冒泡排序就行:

#include<iostream.h>
main()
{
inta[10],i,j,t;
cout<<"输入5个升序排列的数:";"再输入5个升序排列的数:";
for(i=0;i<10;i++)
cin>>a[i];
for(i=0;i<9;i++)
{
for(j=0;j<=i;j++)
if(a[j]>a[j+1])
{
t=a[j+1];
a[j+1]=a[j];
a[j]=t;
}
for(i=0;i<10;i++)
cout<<a[i];
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-03-08

#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,m,i,j,k,q,x,y;
printf("Input array a length\n");
scanf("%d",&n);
int a[n];
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);

}
printf("Input array b length\n");
scanf("%d",&m);
int b[m];
for(j=0;j<m;j++)
{
scanf("%d",&b[j]);

}
q=m+n-1;
int c[q];
x=0,y=0;
for(k=0;k<=q;k++)
{

if(a[x]<b[y])
{
c[k]=a[x];
x++;
if(x==i)
{
do
{
k++;
c[k]=b[y];
y++;
}while(y!=j);

break;
}
}
else
{
c[k]=b[y];
y++;
if(y==j)
{
do
{
k++;
c[k]=a[x];
x++;
}while(x!=i);
break;
}
}
}
printf("输出的结果为:");
for(k=0;k<=q;k++)
{
if(k==q)
{
printf("%d",c[k]);
}
else
{
printf("%d ",c[k]);
}

}


}

第2个回答  2016-05-19
数组一排序好,拷贝到数组二

...都是c++语言的形式,就别复制到这了。。) 编一个程序 将两个按...
先学习C,一定要学好了,c++,c#(目前好像用的不是特别广泛)都是以他为基础扩展来的,java的大部分也是与c想通的,安卓的软件也要依靠java。

C语言 数组问题。将一个按升序排列的数组和一个按降序排列的数组,按...
{ printf("%d ",c[k]);} return 0;}

c语言程序题:输入两个数列,再按从大到小的顺序合并成一个数列并输出
随便写了下,vc6.0能正常编译的,附件中打包了这个软件。代码如下:include <stdio.h>#include <stdlib.h>#include <string.h> int main(){\/\/输入两个数列的大小int a_size = 0, b_size = 0;printf("input A arrrary size:");scanf("%d", &a_size);printf("input B arrary size:"...

将两组有序数列合并成一个新的有序递增数列,用c语言怎么编?
int c[len1+len2];int *pa=a,*pb=b,*pc=c,*end;while(pa<a+len1 && pb<b+len2){ if(*pa<*pb)pc++=*pa++;else pc++=*pb++;} if(pa==a+len1)end=pb;else end=pa;for(;pc<c+len1+len2;pc++)pc=*end++;for(pc=c;pc<c+len1+len2;pc++)printf("\\t %d",*pc)...

C语言:编写一个程序用冒泡排序实现升序排列
1、首先打开一个空白的C语言文件,首先先定义一组待排序的数列以及各个变量,接着就是用来处理排序的逻辑:2、冒泡排序的逻辑是一组数从第一个数值开始,如果相邻两个数的排列顺序与期望不同,则将两个数的位置进行交换,重复这样的过程直到最后一个数不需要交换则排序完成,如果有N个数需要排序,则...

用c语言如何编写一个关于数列的程序
int fibonacci(int n){ int a1 = 1;int a2 = 1;int next = a1 + a2;int i = 3;while(i< n){ a1 = a2;a2 = next;next = a1 + a2;} return next;} } 在主程序里面调用fibonacci(30)就可以啦。

用c语言编程一个程序:有n个数已经从小到排列好,要求输入一个数将其插 ...
a[11] = {10,20,30,40,50,60,70,80,90,100};int n = 0;int num = 10;int tmp = 0;printf("原有数组:\\n");for (i=0; i<num; i++){printf("%d ",a[i]);}printf("\\n");printf("请输入要插入的数:\\n");scanf("%d",&n);for (i=0; i<num; i++){if(...

c语言编程:对10个数冒泡排序(升序)。
int number[10] = {95, 45, 15, 78, 84, 51, 24, 12,34,23};for (int j = 0; j < 9; j++)for (int i = 0; i < 9 - j; i++) { if(a[i] > a[i + 1]) { int temp = a[i];a[i] = a[i + 1];a[i + 1] = temp; } } for (int i = ...

设有一数列包含10 个数,已按升序排好。现要求编一程序,它能够把从指...
你的*b没有成功赋给*a,可能是类型不匹配,因为*b是指针型字符串,而不是int型指针,我给你写了一个正确的用指针的程序,直接在数组*a上操作即可,你可以对照着看一下.按照题目要求编写的C语言程序如下(其中有题目要求的用指针的method函数)include<stdio.h>void method(int m,int n,int* a);int ...

c语言对数列{3,1,8,6,9,4,26,10,2}进行升序排序,输出排序后的结果?_百 ...
int arr[] = {3,1,8,6,9,4,26,10,2};int n = sizeof(arr)\/sizeof(int);int i, j, temp;for(i=0; i<n-1; i++) { for(j=i+1; j<n; j++) { if(arr[i]>arr[j]) { temp = arr[i];arr[i] = arr[j];arr[j] = temp;} } } printf("升序排列结果: ")...

相似回答