#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