你写的这是什么乱七八糟的啊。。。实在无法下手去修改。
格式乱
一个i在两层循环都使用,能不乱套么。。
我直接根据要求写了一下#include<stdio.h>
int main()
{
int a[10]={1,3,5,7,9};
int b[10]={2,4,6,8,10};
int i,j;//用于双层循环
int k=4;//内层循环的初始值
int t=9;//目标数组的下标值
//倒序遍历两个数组,这样不用每次都向后移动各个数值
for (i=4;i>=0;i--)
{
for (j=k;j>=0;j--)
{
if(a[i]>=b[j])//若数组a当前的值大于数组b当前的值,那么就跳出外层循环,将数组a当前的值放到目标位置
break;
a[t--]=b[j];//否则,将数组b当前的值放到目标位置,同时t--,目标位置向前移动
k--;//数组b中已经有一个进行排序了,下次循环的时候就少了一个
}
a[t--]=a[i];//将数组a当前的值放到目标位置,同时t--,目标位置向前移动
}
for(i=0;i<10;i++)
printf("%d\n",a[i]);
return 0;
}
|