3-7-2 合并数组 (15 分)
实验五:数组
实验目的:
- 掌握一维数组和二维数组的定义、赋值和输入输出的方法。
- 掌握字符数组和字符串函数的使用。
题目描述
已知两个升序数组,将它们合并成一个升序数组并输出。例如:数组array1={3,6,13,35,54},数组array2={14,19,26,32}, 合并为新的数组array={3,6,13,14,19,26,32,35,54}。
输入格式:
输入两行升序整数,当每行输入0时,表示输入结束。每行整数的个数1<=N<=10。
输出格式:
输出合并后的升序数组。(最后一个数据后有一个空格)
输入样例:
在这里给出一组输入。例如:
3 6 13 35 54 0
14 19 26 32 0
输出样例:
在这里给出相应的输出。例如:
3 6 13 14 19 26 32 35 54
#include<stdio.h>
void copy(int b[], int a[]);
int main()
{
int a[11] , b[23],/* = {0},*/ /*c[23],d,*/ i = -1, j = -1, k = 0, z = 0, t;
do {
i++;
scanf("%d", &a[i]);
} while (a[i] != 0);
do {
j++;
scanf("%d", &b[j]);
} while (b[j] != 0);
copy(b, a);
j=0;
while (b[j] != '\0')
{
j++;
k++;
}
for (i = 0; i < k; i++)
{
for (z = i + 1; z < k; z++)
{
if (b[z] < b[i])
{
t = b[z];
b[z] = b[i];
b[i] = t;
}
}
}
for (z = 0; z < k; z++)
printf("%d ", b[z]);
return 0;
}
void copy(int b[], int a[])
{
int i,j;
i = j= 0;
for(;b[j]!=0;j++);
while ((b[j] = a[i]) != '\0')
{
++i;
++j;
}
}