怎么看都没看出哪错了感觉逻辑一点都没有希望大神解决
图片是运行效果图想要实现一个排序好一个数组 然后输入一个数 插入数组 重新排列输出 看了半天不知道为毛错了感觉逻辑没错
#include "stdio.h"
#include"stdlib.h"
int main(void)
{
int a[]={123,321,456,654,789,987,444,666,555};
int re;
int lengh=sizeof(a)/sizeof(int);/*获取数组长度 */
int import;
int p=0;
for (int i = 0; i<lengh; i++)
{
for (int j = i+1; j<lengh ;j++)/*排序代码 */
{
if(a[i]>a[j] )
{ p =a[i];
a[i] =a[j];
a[j] = p;
}
/* code */
}
/* code */
}
for (int i = 0; i < lengh; i++)/*遍历数组 */
{
printf("%d ",a[i]);
/* code */
}
scanf("%d",&import);/*输入一个数 */
/* a[]={123,321,456,654,789,987,444,666,555};*/
a[lengh]=import;/*将数放入数组末加一个元素 */
lengh++;/*长度加1 */
for (int i = 0; i <lengh; i++)
{
if (a[i]>a[lengh-1])/*如果a[i]小于a[lengh-1]交换位置*/
{int t;
t=a[i];
a[i]=a[lengh-1];
a[lengh-1]=t;
re=i;/*记录i */
break;
}
}
for (int i = re; i<lengh; i++)/*从开始排序排序 */
for (int j = i+1; j<lengh ;j++)
{
if(a[i]>a[j] )
{
p=a[i];
a[i]=a[j];
a[j]=p;
}
}
for (int i = 0; i < lengh; i++)/*遍历输出 */
{
printf("%d ",a[i]);
}
system("pause");
return 0;
}