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

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

    评论

报告相同问题?

悬赏问题

  • ¥20 指导如何跑通以下两个Github代码
  • ¥15 大家知道这个后备文件怎么删吗,为啥这些文件我只看到一份,没有后备呀
  • ¥15 C++为什么这个代码没报错运行不出来啊
  • ¥15 一道ban了很多东西的pyjail题
  • ¥15 关于#r语言#的问题:如何将生成的四幅图排在一起,且对变量的赋值进行更改,让组合的图漂亮、美观@(相关搜索:森林图)
  • ¥15 C++识别堆叠物体异常
  • ¥15 微软硬件驱动认证账号申请
  • ¥15 GPT写作提示指令词
  • ¥20 根据动态演化博弈支付矩阵完成复制动态方程求解和演化相图分析等
  • ¥15 华为超融合部署环境下RedHat虚拟机分区扩容问题