正在载入在线练习界面,本页内容可直接阅读…

AK CSP › NOIP 提高 2010 第一轮真题 › 第 25 题

NOIP 提高 2010 第一轮 第 25 题:归并输出两个有序数组

阅读程序 · 排序算法 · 答案 12356791014

题目

```
#include<iostream>
using namespace std;
int main()
{
    const int SIZE=100;
    int na,nb,a[SIZE],b[SIZE],i,j,k;
    cin>>na;
    for(i=1;i<=na;i++)
        cin>>a[i];
    cin>>nb;
    for(i=1;i<=nb;i++)
        cin>>b[i];
    i=1;
    j=1;
    while( (i<=na)&&(j<=nb) )
    {
        if(a[i]<=b[j])
        {
            cout<<a[i]<<' ';
            i++;
        }
        else
        {
            cout<<b[j]<<' ';
            j++;
        }
    }
    if(i<=na)
       for(k=i;k<=na;k++)
           cout<<a[k]<<' ';
    if(j<=nb)
       for(k=j;k<=nb;k++)
           cout<<b[k]<<' ';
    return 0;
}
```
输入:  
5   
1 3 5 7 9   
4   
2 6 10 14  
输出:_______________

本小题

请写出程序的输出结果。

答案

12356791014

题解

考点定位

本题考「归并输出模拟」,对应大纲 4.2.1 程序模拟(难度【1】)。

解题过程

归并两有序表 A=1,3,5,7,9 与 B=2,6,10,14:

输出 1 2 3 5 6 7 9 后 A 空出尽,接 B 剩余 10 14:

连写:12356791014。

易错提醒

① a[i]<=b[j] 相等时先输出 A 的——本题无相等;② 输出是连写数字(无空格分隔符计入答案书写)。

真题版权归 CCF 所有,本站仅用于非商业教学用途。页面加载后可直接在线作答,作答记录保存在本浏览器或账号中。 京ICP备2026056990号-1 京公网安备11010502062986号