题目要求用指针写,修改如下,供参考:
#include<stdio.h>
int main()
{
int a[8] = { 1,7,9,11,13,15,17,19 }, b[5] = { 2,4,6,8,10 }, c[13];
int *pa = a, * pb=b, * pc=c;
while (pa < a + 8 && pb < b + 5)
{
if (*pa <= *pb){
*pc++ = *pa++;
}
else{
*pc++ = *pb++;
}
}
while (pa < a + 8) *pc++ = *pa++;
while (pb < b + 5) *pc++ = *pb++;
for (int i = 0; i < 13; i++)
printf("%d,", c[i]);
return 0;
}
题主的代码,修改如下,供参考:
#include<stdio.h>
int main()
{
int a[8] = { 1,7,9,11,13,15,17,19 }, b[5] = { 2,4,6,8,10 }, c[13];
int * pb=b, * pc=c;
int i, j, k=0, m;
for (i = 0; i < 8; i++)
{
c[i] = a[i];
}
for (j = 0; j < 5; j++)//继续接上 b[]数组
{
c[i++] = b[j];
}
for (i = 0; i < 13 - 1; i++){ //数组c[]排序
for (j = 0; j < 13 - 1 - i; j++){
if (c[j] > c[j+1]){
m = c[j];c[j] = c[j+1];c[j+1] = m;
}
}
}
//if (b[j] > c[k])
//{
// k++;
// if (b[j] < c[k])
// {
// for (m = 12; m > k; m--)
// c[m] = c[m - 1];
// c[k] = b[j];
// }
// else
// k++;
//}
//}
for (i = 0; i < 13; i++)
printf("%d,", c[i]);
return 0;
}
//8数字插不进去,差一个循环,但我不知道这个循环怎么写