当前位置:首页 » 编程语言 » c语言u8数组合成
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言u8数组合成

发布时间: 2022-08-23 04:30:44

c语言中数组的合并

//两个数组合并,参考代码:
#include "stdio.h"
int d=0; //用于记录数组c的大小,和数组c的输出类的一些操作
void main()
{
int a[50],b[50],c[100];
int i,j,k; //i表示a数组的大小 j表示b数组的大小 k用于数组的输出
printf("数组a的输入,输入一个数,表明你要输入多少个数到数组a中\n");
scanf("%d",&i);
for(k=0;k<i;k++)
scanf("%d",&a[k]);
printf("数组b的输入,输入一个数,表明你要输入多少个数到数组b中\n");
scanf("%d",&j);
for(k=0;k<j;k++)
scanf("%d",&b[k]);
void px(int *p,int n); //声明 排序 冒泡法
px(a,i); //调用
px(b,j); //调用
void prin(int *p,int n); //声明 数组的输出函数
prin(a,i);
prin(b,j);
void hb(int *o,int *p,int *q,int m,int n); //声明 两个数组的合并函数 前提:这俩个数组必须是排好序的
hb(c,a,b,i,j);
prin(c,d);
}

void px(int *p,int n) //自定义函数 排序 冒泡法
{int i,j,t,leap;
for(i=0;i<n-1;i++) //外层循环n-1次,一次循环沉淀一个数
{
leap=0; //leap作为标记,是否两数相换
for(j=0;j<n-i-1;j++) //内循环n-i-1次
{
if(p[j]>p[j+1]) //比较两个数
{
t=p[j];
p[j]=p[j+1];
p[j+1]=t; //来两个数交换
leap=1; //交换了,标记leap=1
}
}
if(leap==0) break; //经历了一个内for循环,leap==0的话,表明排序成功了,不需要接下来在排序了。
}
}

void prin(int *p,int n) //自定义函数 数组输出函数
{
int k,sum=0;
for(k=0;k<n;k++)
{
printf("%d ",p[k]);
sum++;
if(sum%10==0) printf("\n");
}
printf("\n");
}

void hb(int *o,int *p,int *q,int m,int n) //m为p指向数组的大小 n为q指向数组的大小 指针o指向合并的数组
{
int i=0,j=0,k; //i为p指向数组的大小 j为q指向数组的大小
while(1)
{
if(p[i]<q[j])
{
o[d]=p[i];
i++;
d++;
}
else
{
o[d]=q[j];
j++;
d++;
}
if(i==m||j==n) break;
}
if(i==m)
{
for(k=j;k<n;k++)
{
o[d]=q[k];
d++;
}
}
if(j==n)
{
for(k=i;k<m;k++)
{
o[d]=p[k];
d++;
}
}
}

Ⅱ 怎么用c语言将两个数组并起来

看代码,写了几种数组的合并:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
voidcharacter()
{
charc1[]={'H','e','l','l','o'};
charc2[]={'','w','o','r','l','d','!'};
intk=0;
charnew_c[100];
for(inti=0;i<sizeof(c1);i++)//注意是sizeof()
new_c[k++]=c1[i];
for(i=0;i<sizeof(c2);i++)
new_c[k++]=c2[i];
new_c[k]='';
puts(new_c);

}
voidstring()
{
chars1[]={"hello,"};
chars2[]={"c语言!"};
intk=0;
charnew_s[100];
for(inti=0;i<strlen(s1);i++)//注意是strlen()
new_s[k++]=s1[i];
for(i=0;i<strlen(s2);i++)
new_s[k++]=s2[i];
new_s[k]='';
puts(new_s);
}
voidnumber()
{
intnum1[]={1,2,3},*p1=num1;
intnum2[]={4,5,6,''};//整型数组,字符数组是没有结束符号,自己加入‘’
intnew_num[100];
intk=0;
for(inti=0;i<sizeof(num1)/sizeof(int);i++)
{
new_num[k++]=*(p1++);
}
for(i=0;num2[i]!=0;i++)
{
new_num[k++]=num2[i];
}
new_num[k]='';
for(i=0;new_num[i]!=0;i++)
{
printf("%d",new_num[i]);
}
puts("");

}
voidmain()
{
character();//字符数组的合并
string();//字符串的合并
number();//整型数组的合并,做法是一样的

}

运行截图:

Ⅲ 如何用C语言编程将两个有序数组a,b合并成一个数组c

就以你的例子来写,可适当修改为更普遍的

算法核心代码为:

int i = j = k = 0;
//循环比较,将小的插入到C数组中

while ( i < 3 && j < 3) {
if (a [i] < b [j]) c[k++] = a[i++];
else c[k++] = b[j++];

}
//处理其中一个数组剩下

while (i < 3) c[k++] = a[i++];
while( j < 3) c[k++] = b[j++];
或许有更好的实现,你自己在想想吧!

Ⅳ 请问如何使用C语言把两个数组合并在一个数组里

代码文本:

#include "stdio.h"

int input(int *p,int n){

char i,ch;

for(i=0;i<n;i++){

if((ch=getchar())==' ')

break;

else if(ch>='0' && ch<='9')

ungetc(ch,stdin);

scanf("%d",p+i);

}

return i;

}

int main(int argc,char *argv[]){

int a[21],b[10],i,j,k;

printf("Input array a... ");

i=input(a,10);

printf("and input array b... ");

j=input(b,10);

for(k=0;k<j;a[i++]=b[k++]);

for(j=0;j<i;printf("%d ",a[j++]));

putchar(' ');

return 0;

}

Ⅳ C语言编程 数组合并

#include<stdio.h>
int main()
{
int aLength;
scanf("%d",&aLength);
int a[aLength];
int i,j=0;
for(i=0;i<aLength;i++)
{
scanf("%d",a+i);
}
int bLength;
scanf("%d",&bLength);
int b[bLength];
for(i=0;i<bLength;i++)
{
scanf("%d",b+i);
}
int allLength=aLength+bLength;
int c[allLength];
for(i=0;i<aLength;i++)
{
c[i]=a[i];
}
for(i=aLength;i<allLength;i++)
{
c[i]=b[j];
j++;
}
for(i=0;i<allLength;i++)
{
printf("%d ",c[i]);
}
return 0;
}

Ⅵ 同C语言合并两个数组

合并数组的操作,具体算法依赖于合并的规则。

其通用流程如下:

1 建立一个足够容纳两个数组所有元素的目标数组。如果规则规定将一个数组合并到另一个之中,那么需要保证目标数组有可以容纳两个数组的空间,否则会出现越界。

2 遍历其中一个数组,并赋值到目标数组中。如果是一个数组合并到另一个,那么此步可以省略;

3 遍历另一个数组,按照规则插入到目标数组中。

在不同规则下,合并算法会有差异,如将长为lb的B数组附加到长为la的A数组结尾的操作,可以写作

inti;
for(i=0;i<lb;i++)
A[la+i]=B[i];

而将长度均为l的数组A,B,交替合并到C中,可以写作

inti;
for(i=0;i<l;i++)
{
C[i*2]=A[i];
C[i*2+1]=B[i];
}

不管是何种方式,合并的本质就是,把A和B的每个元素,赋值到目标数组的对应位置上即可。

Ⅶ c语言怎么合并两个数组

int main() {
char a[] = "123456";
char b[] = "abcde";
int buflen = strlen(a) + strlen(b);
char *p = (char*)malloc(buflen + 1);
memset(p, 0, buflen);
printf("%d\n", buflen);
strcpy(p, a);
strcat(p, b);
printf("%s\n", p);
free(p);
}
C的数组在创建后不可变得,因此数组合并的思想就是把数组塞到一个足够大的空间里形成新数组。
上面的函数是比较简单的合并方法

Ⅷ C语言如何把三个数组合成一个数组 如a[]={1,2,3}b[]={4,5,6}c[]={7,8,9} 结:d[]={1,2,3,4,5,6,7,8,9,}

设置一个字符串buffer,把三个数组分别循环一遍,放进buffer,用逗号隔开,然后再转化成一个数组!

Ⅸ 怎样在C语言中实现两个数组的合并

把两个数组分别合到一个数组里面啊.
那个数组的长度为 两个数组的长度的和

Ⅹ C语言数组字符串合成

//将两个字符串合成一个字符串,在括号中填入适当的语句,编译
运行出正确的结果。
#include
<stdio.h>
#include<string.h>
void
main()
{
char
s1[20],s2[30],s3[50];
int
i,j,lengths1,lengths2;
printf("string1:");
gets(s1);
printf("string2:");
scanf("%s\n",s2);
lengths1=strlen(s1);
lengths2=strlen(s2);
for(i=0;i<lengths1;i++)
s3[i]=s1[i];
for(j=lengths1;j<lengths1+lengths2;j++)
s3[j]=s2[j-lengths1];
s3[j]='\0';//没有这一步很可能就出现
段错误

printf("append
string
3:%s\n",s3);
}
//如
运行:
string1:abc//
string2:def//
结果:append
string3:abcdef帮忙修改下