c语言(升序数组的合并),怎么解决?
include <stdio.h
include <stdlib.h
include <malloc.h
//c合并升序数组a,b并存在c数组中
void uparr(inta,int m,int
帮你格式化了一下,你还是个学生吧~运算符之间,小语句之间增加空格,养成比较好的编程习惯:
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
// c合并升序数组a,b并存在c数组中
void uparr(int a, int m, int b, int n, int* c);
int main(void) {
int num1;
int num2;
int num3;
int m;
int i;
printf("请输入a数组的长度\n");
scanf("%d", &m);
num1 = (int) malloc(sizeof(int)m);
for(i = 0; i < m; i++) {
printf("请输入a数组的的元素");
scanf("%d", &num1[i]);
}
int n;
printf("请输入数组b的长度\n");
scanf("%d", &n);
num2 = (int) malloc(sizeof(int)n);
for(i = 0; i < n; i++) {
printf("请输入b数组的的元素");
scanf("%d", &num2[i]);
}
int e = 0;
num3 = (int) malloc(sizeof(int) * e);
uparr(num1, m, num2, n, num3);
printf("结果为\n");
for(e = 0; e < m + n; e++) {
printf("%d", &num3[e]);
}
return 0;
}
void uparr(int a, int m, int b, int n, int* c) {
int k, i, j = 0;
while(i < m && j < n) {
if(*a < *b) {
c[k]=a[i];
a++;
k++;
i++;
} else {
c[k]=b[j];
b++;
k++;
j++;
}
}
return;
}
两个文档建议你阅读一下: