c语言程序题:输入两个数列,再按从大到小的顺序合并成一个数列并输出
发布网友
发布时间:2022-05-26 14:57
我来回答
共2个回答
热心网友
时间:2023-10-23 01:57
随便写了下,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:");
scanf("%d", &b_size);
//动态分配两个数列的内存
int *pa = (int *)malloc(sizeof(int) * a_size);
int *pb = (int *)malloc(sizeof(int) * b_size);
int *pc = (int *)malloc(sizeof(int) * (a_size + b_size));
if (pa==0 || pb == 0 || pc==0) {
printf("can't malloc mem\n");
return 0;
}
memset(pa, 0x00, sizeof(int) * a_size);
memset(pb, 0x00, sizeof(int) * b_size);
memset(pc, 0x00, sizeof(int) * (a_size + b_size));
//输入数列内容
int inx = 0;
for (inx=0; inx!=a_size; ++inx) {
scanf("%d", &pa[inx]);
}
for (inx=0; inx!=b_size; ++inx) {
scanf("%d", &pb[inx]);
}
//合并两个数列
memcpy(pc, pa, sizeof(int) * a_size);
memcpy(pc+a_size, pb, sizeof(int) * b_size);
//冒泡排序
int i, j, limit = a_size + b_size;
for (i=0; i!=limit; ++i) {
for (j=i+1; j!=limit; ++j)
{
if (pc[i] < pc[j])
pc[i] ^= pc[j], pc[j] ^= pc[i], pc[i] ^= pc[j];
}
}
//输出结果
for (inx=0; inx!=limit; ++inx) printf("%d\t", pc[inx]);
printf("\n");
//释放内存
free(pa);
free(pb);
free(pc);
return 0;
}
执行效果如下图:
热心网友
时间:2023-10-23 01:58
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("请输入第一个数组的元素个数:\n");
int as;
scanf("%d",&as);
printf("请输入元素:\n");
int a[100];
int i;
for(i=0;i<as;i++)
{
scanf("%d",&a[i]);
}
printf("请输入第二个数组的元素的个数:\n");
int sd;
scanf("%d",&sd);
printf("请输入元素:\n");
for(i=as;i<as+sd;i++)
{
scanf("%d",&a[i]);
}
printf("排序后的结果是:\n");
int k;
int j;
int t;
for(k=0;k<as+sd;k++)
{
for(j=0;j<as+sd;j++)
{
if(a[k]>a[j])
{
t=a[k];
a[k]=a[j];
a[j]=t;
}
}
}
for(i=0;i<as+sd;i++)
{
printf("%d ",a[i]);
}
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 a[N]={12,2,5,45,8},b[M]={58,7,6,98,5,12},c[M+N];//预设测试数据 int i,j,k;SelectSort(a,N);//先对两个无序数组进行排序 SelectSort(b,M);i=0;j=0;k=0;//c数组下标 while(i<N && j<M)//数组a,b有元素 { if(a[i] >= b[j])//将两者较小者放进...
C语言 对数列进行从小到大排序并输出
,a[i]);return 0;}刚才语气可能重了点,用我这个再试试吧。
c语言问题: 输入格式 输入有多组数据。 每组数据两行。 第一行包含一...
1、首先打开visual studio软件,新建一个C语言文件。2、接着在C语言文件的顶部导入库内容。3、接着运用scanf函数接收用户输入的字符串。4、然后我们利用printf函数打印一下用户输入的内容。5、运行程序以后就会弹出如下图所示的CMD界面,我们输入内容就会自动接收到,然后原样输出内容。6、最后如果你接收其...
c语言编写程序输出第四十项。
c语言编写程序求数列1,3,3,3,5,5,5,5,5,7,7,7,7,7,7,7的第四十项:解答如下:main(){ int i,n; i=1; n=40; while (n>=0){ n=n-i; i=i+2; } printf("%d",i);} 上面程序输出的i值就是第n项的z值。
如何将几道C语言程序的合并?
每一题都改为函数,在写一个主函数,就可以实现了。例如 void function1(){ char ch;scanf("%c",&ch);if(ch>='A'&&ch<='Z') printf("1");else if(ch>='a'&&ch<='z') printf("2");else if(ch>='0'&&ch<='9') printf("3");else printf("4");} void function2(){ ...
用C语言编程输出数列1,1,2,3,5,8,13,21的前20 项
这个问题所输出的数列叫Fibonacci数列 是一个有趣的古典数学问题 来源:有一对兔子,从出生后第3个月起每一个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假设所有的兔子都不死,问每个月的兔子总数为多少?也就是说 后一个数是前2个数的和 测试系统 Turbo c 3.0 include <...
c语言编程:输入一个数字n,再输入n个数,将这个n个数从小到大输出。
scanf(输入n的值);//输入个数 int array;//把需排序的数列定义为数组。这里需要指出的是,如果定义为array[n-1],因为你的n在编译时未赋值,所以编译是不会通过的。于是这里直接将它定义为一个指针,赋值方法跟数组相同。但是个数太多就不能这么做了 for(i = 0;i < n;i++){ //输入需要...
C语言编程题目
下面是一些C编程题目:1. 编写程序,从键盘输入两个整数,输出它们的和、差、积、商、余数。2. 编写程序,从键盘输入三角形的三条边长,判断它们是否可以构成三角形,并输出三角形的类型(等边、等腰、一般)。3. 编写程序,从键盘输入字符串,统计其中的大写字母、小写字母、数字和其他字符的个数,并...
求两个数的最大公约数c语言
求两个数的最大公约数c语言如下:思路有两种:第一种,采用穷举法按从小到大(初值为1,最大值为两个整数当中较小的数)的顺序将所有满足条件的公约数列出,输出其中最大的一个;第二种,按照从大(两个整数中较小的数)到小(到最小的整数1)的顺序求出第一个能同时整除两个整数的自然数,即...