代碼文本:
創新互聯企業建站,十余年網站建設經驗,專注于網站建設技術,精于網頁設計,有多年建站和網站代運營經驗,設計師為客戶打造網絡企業風格,提供周到的建站售前咨詢和貼心的售后服務。對于網站設計、做網站中不同領域進行深入了解和探索,創新互聯在網站建設中充分了解客戶行業的需求,以靈動的思維在網頁中充分展現,通過對客戶行業精準市場調研,為客戶提供的解決方案。
#include "stdio.h"
int input(int *p,int n){
char i,ch;
for(i=0;in;i++){
if((ch=getchar())=='\n')
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...\n");
i=input(a,10);
printf("and input array b...\n");
j=input(b,10);
for(k=0;kj;a[i++]=b[k++]);
for(j=0;ji;printf("%d ",a[j++]));
putchar('\n');
return 0;
}
nt i,j,k;
for(i=0,j=0;jm;i++)
if(a[i]b[j])
{for(k=i+m;k=i;k--)
a[k]=a[k-1];
a[i]=b[j];
j++;
}else if(in){a[i]=b[j];}
}
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的數組在創建后不可變得,因此數組合并的思想就是把數組塞到一個足夠大的空間里形成新數組。
上面的函數是比較簡單的合并方法
//兩個數組合并,參考代碼:
#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;ki;k++)
scanf("%d",a[k]);
printf("數組b的輸入,輸入一個數,表明你要輸入多少個數到數組b中\n");
scanf("%d",j);
for(k=0;kj;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;in-1;i++) //外層循環n-1次,一次循環沉淀一個數
{
leap=0; //leap作為標記,是否兩數相換
for(j=0;jn-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;kn;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;kn;k++)
{
o[d]=q[k];
d++;
}
}
if(j==n)
{
for(k=i;km;k++)
{
o[d]=p[k];
d++;
}
}
}
#includestdio.h
int main()
{
int aLength;
scanf("%d",aLength);
int a[aLength];
int i,j=0;
for(i=0;iaLength;i++)
{
scanf("%d",a+i);
}
int bLength;
scanf("%d",bLength);
int b[bLength];
for(i=0;ibLength;i++)
{
scanf("%d",b+i);
}
int allLength=aLength+bLength;
int c[allLength];
for(i=0;iaLength;i++)
{
c[i]=a[i];
}
for(i=aLength;iallLength;i++)
{
c[i]=b[j];
j++;
}
for(i=0;iallLength;i++)
{
printf("%d ",c[i]);
}
return 0;
}
#include "stdio.h"
#include "algorithm.h"
#define M 10
#define N 10
int com(int *a, int *b, int *c)
{
int i, j;
int count = 0;
for (i = 0; i M; i++)
c[i] = a[i];
for (j = 0; j N; j++)
c[i++] = b[j];
sort(c, c + (M + N));
for (i = 0; i M + N - 1; i++)
{
if (c[i] == c[i + 1])
{
count++;
for (j = i; j M + N - 1; j++)
c[j] = c[j + 2];
}
}
return count;
}
int main(void)
{
int a[M] = { 3, 6, 7, 18, 23, 33, 35, 43, 48, 78 };
int b[N] = { 2, 7, 13, 21, 33, 37, 48, 50, 58, 67 };
int c[M + N] = { 0 };
int count = 0, i;
count = com(a, b, c);
for (i = 0; i M + N - 2 * count; i++)
printf("%d ", c[i]);
printf("\ncount=%d ", count);
return 0;
}
文章標題:合并數組c語言函數 C語言合并數組
標題網址:http://m.kartarina.com/article48/dodsiep.html
成都網站建設公司_創新互聯,為您提供響應式網站、網站建設、網站收錄、全網營銷推廣、營銷型網站建設、定制網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯