北理工乐学C语言 60.合并排序

60.合并排序

成绩0开启时间2022年11月7日 星期一 08:00
折扣0.8折扣时间2022年11月27日 星期日 23:35
允许迟交关闭时间2022年12月4日 星期日 23:35

要求,将两个已经排好顺序的字符串合并到一个字符串里

main函数和函数的定义已经写好了,你只能使用指针来完成了。

/* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */

#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int merge_sort(char *a,char *b,char *c); 
int main(int argc, char *argv[]) {
		
	char a[100];
        char b[100];
        char c[200];

	gets(a);
        gets(b);
       merge_sort(a,b,c);
	puts(c);
	return 0;
}

/* PRESET CODE END - NEVER TOUCH CODE ABOVE */

 测试输入 期待的输出 时间限制 内存限制 额外进程
测试用例 1以文本方式显示
  1. 1a↵
  2. 2b↵
以文本方式显示
  1. 12ab↵
1秒64M0
测试用例 2以文本方式显示
  1. eggloo↵
  2. aceehrt↵
以文本方式显示
  1. aceeegghloort↵
1秒64M0
int merge_sort(char* a, char* b, char* c)
{
    while (*a && *b)/*等价于while(*a != '\0' && *b != '\0')*/
    {
        if (*a <= *b)/*a,b中元素一一比较,谁小就把谁放到c里*/
        {
            *c = *a;
            a++;
        }
        else
        {
            *c = *b;
            b++;
        }
        c++;
    }
    while (*a)/*以上循环的结果是必有一组元素全部比完,
                只需把没必完的组的剩下元素输出即可*/
    {
        *c = *a;
        a++;
        c++;
    }
    while (*b)
    {
        *c = *b;
        b++;
        c++;
    }
    return 1;
}

注:此题与 45.合并字符串的思想一致,但明显使用指针显得非常简洁清晰。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值