lalalal


私信TA

用户名:wuben

访问量:4159

签 名:

等  级
排  名 3374
经  验 1947
参赛次数 4
文章发表 3
年  龄 0
在职情况 学生
学  校 不知道
专  业

  自我简介:

TA的其他文章

解题思路: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 人评分

  评论区

  • «
  • »