解题思路:1:分别有三个数组li1,li2,li3;
2:chuang1,chuang2,分别是li1,li2的长度;
3:g1,g2分别指向li1,li2;
4:做比较,当li1[g1]<=li2[g2]时,li3[i]保存li1[g1],当li2[g2]<li1[g1],同理
5:当最小长度的字符串输入完毕时,就是g1等于chuang1或g2等于chuang2;调用函数mo,将长的字符串的末尾数字输入li3.最后输出li3.
注意事项:最后提交多次都是错误,多看了好几遍才发现时多组数据,看来现在本人不是眼睛近视,而是眼睛瞎了,以后还是要看好题目。
参考代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void mo(int *p,int *j,int qi,int wei,int f){
for(;qi<wei;qi++){
j[++f]=p[qi];
}
}
int main(int agrc,char* agrv[]){
int li1[110],li2[110],li3[220];
int chuang1,chuang2;
while(scanf("%d",&chuang1)!=EOF){
for (int i=0;i<chuang1;i++){
scanf("%d",&li1[i]);
}
scanf("%d",&chuang2);
for(int i=0;i<chuang2;i++){
scanf("%d",&li2[i]);
}
int g1=0,g2=0;
for(int i=0;i<chuang1+chuang2;i++){
if (li1[g1]<=li2[g2]){
li3[i]=li1[g1];
g1++;
if(g1==chuang1){
mo(li2,li3,g2,chuang2,i);
break;
}
}else{
li3[i]=li2[g2];
g2++;
if(chuang2==g2){
mo(li1,li3,g1,chuang1,i);
break;
}
}
}
for(int i=0;i<chuang1+chuang2;i++){
printf("%d ",li3[i]);
}
printf("\n");
}
}
0.0分
2 人评分
【回文数(二)】 (C++代码)浏览:932 |
【绝对值排序】 (C语言代码)浏览:832 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:436 |
哥德巴赫曾猜测 (C语言代码)浏览:1147 |
【出圈】 (C语言代码)浏览:824 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:387 |
2005年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:672 |
C语言程序设计教程(第三版)课后习题9.4 (C语言代码)浏览:724 |
2006年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:383 |
字符串比较 (C语言代码)浏览:770 |