求输入一个数进行重新排序


#include<stdio.h>
int main()
{
    int num=0;
    int array[10] = {1,2,55,66,77,89,90,455,789,4556};
    printf("请输入一个整数:");
    scanf("%d", &num);
    int j=9;
    while(j >= 0 && (array[j]>num))
    {  
        array[j+1] = array[j];    
        printf("把原来第%d位的%d赋值给第%d位\n",j+1,array[j],j+2);
        j--;
    }  
    array[j+1] = num; 
    for (j = 0 ; j<11; j++) 
    {  
        printf("%d\t",array[j]);
    } 
    return 0;    
}

结果如图


请输入一个整数:4
把原来第10位的4556赋值给第11位
1       2       55      66      77      89      90      455     789     4556    4556
--------------------------------
Process exited after 0.7139 seconds with return value 0
请按任意键继续. . .

没发现什么问题啊

你的array数组溢出了
array一共只有10个元素
你给第11个元素赋值
指针就指向了num这个变量
变成把4556赋值给了num
于是循环结束

数组改成a[11],j=10