「已注销」 2021-04-29 09:20 采纳率: 0%
浏览 84

输入两行整数序列,每行整数序列均有10个正整数

问题描述:

输入两行整数序列,每行整数序列均有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语言

  • 写回答

6条回答 默认 最新

  • 关注

    #include<stdio.h>
    int main(void){
        /*
        1 3 5 6 7 8 10 13 14 15

        2 4 6 8 9 10 12 13 15 16
        */
        int arr1[10];
        int arr2[10];
        int arr3[20];
        int i,j,temp;
        int zero=0;
        int t;
        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=0;i<20;i++)
        {
            for(j=i+1;j<=19;j++)
            {
                if(arr3[i]>arr3[j])
                {
                    t=arr3[i]; //t是临时变量
                    arr3[i]=arr3[j];
                    arr3[j]=t;    
                }
            }    
        }
        
        for    (i=0;i<20;i++){
            if(arr3[i]>0)
                printf("%d ",arr3[i]);
        }
        return 0;
    }
     

    评论

报告相同问题?