60.合并排序
成绩 | 0 | 开启时间 | 2022年11月7日 星期一 08:00 |
折扣 | 0.8 | 折扣时间 | 2022年11月27日 星期日 23:35 |
允许迟交 | 否 | 关闭时间 | 2022年12月4日 星期日 23:35 |
要求,将两个已经排好顺序的字符串合并到一个字符串里
main函数和函数的定义已经写好了,你只能使用指针来完成了。文章来源:https://www.toymoban.com/news/detail-770169.html
/* 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秒 | 64M | 0 |
测试用例 2 |
以文本方式显示
|
以文本方式显示
|
1秒 | 64M | 0 |
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.合并字符串的思想一致,但明显使用指针显得非常简洁清晰。文章来源地址https://www.toymoban.com/news/detail-770169.html
到了这里,关于北理工乐学C语言 60.合并排序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!