正在载入在线练习界面,本页内容可直接阅读…
AK CSP › NOIP 提高 2010 第一轮真题 › 第 25 题
NOIP 提高 2010 第一轮 第 25 题:归并输出两个有序数组
题目
```
#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号