问题描述:
输入两行整数序列,每行整数序列均有10个正整数,且每个序列从小到大有序排列的,请你按如下要求编写程序。
(1) 将两行有序整数序列读取到整型数组arr1中与arr2中。
(2) 将数组arr1与arr2中元素合并到整型数组arr3中,要求合并时要去除数组arr1与数组arr2中的重复数据。
(3) 将合并之后的数组arr3按顺序进行打印输出。
程序输入:
共两行,每行10个正整数,正整数之间使用空格隔开。
程序输出:
按顺序输出合并后的新数组。
输入示例:
1 3 5 6 7 8 10 13 14 15
2 4 6 8 9 10 12 13 15 16
输出示例:
1 2 3 4 5 6 7 8 9 10 12 13 14 15 16
#include<stdio.h>
int main(void){
int arr1[10];
int arr2[10];
int arr3[20];
int i,j,temp;
int zero=0;
printf("请按由小到大的顺序输入正整数,正整数之间使用空格隔开\n");
printf("请先输入十个正整数\n");
for(i=0;i<10;i++){
scanf("%d",&arr1[i]);
}
printf("请再输入十个正整数\n");
for(j=0;j<10;j++){
scanf("%d",&arr2[j]);
}
for(i=0;i<10;i++){
for(j=0;j<10;j++){
if(arr1[i]==arr2[j]){
arr2[j]=0;
}
}
}
for (i=0;i<20;i++){
if(i<10){
arr3[i]=arr1[i];
}
else{
arr3[i]=arr2[i-10];
}
}
for (i=10;i<20;i++){
if(arr3[i]!=0){
for(j=10;j<i;j++){
if(arr3[j]==0){
zero+=1;
}
}
temp=i-zero;
arr3[temp]=arr3[i];
}
}
for (i=0;i<20;i++){
printf("%d ",arr3[i]);
}
return 0;
}
//C语言