/* Note:Your choice is C IDE */ #include "stdio.h" void main() { int index; // 插入数要插入的位置编号 int insert;//接收插入数 int end; // 插入前最后一个数字的位置编号 int i; // 用于循环使用的变量 int n[12]={2,12,15,23,40,43}; //插入数组前排序如下 end=5; printf("插入数组前排序如下:\n"); for(i=0;i<=end;i++) printf("%4d",n[i]); //输入插入数 ss: printf("\n请输入一个插入数:"); scanf("%d",&insert); //找插入数的位置编号 for(i=0;i<=end;i++) { if(n[i]>insert) { index=i; //记录此时插入数的编号 break; } else index=end+1;//插入数都大于输入数 值赋给index } //位移 for(i=end+1;i>=index+1;i--) n[i]=n[i-1]; //把移动的数据往后存放 //3把插入数存放了它应该放的位置 n[index]=insert; if(end<11) { end++; //如果插入数比任何一个数都大,就放在最后一位 printf("插入数组后排序如下:\n"); //插入数组后排序如下 for(i=0;i<=end;i++) printf("%4d",n[i]); goto ss; } else printf("数组已满,程序结束!"); } /* index 初始数编号 2,12,15,23,40,43 insert end 结束数 1 找插入数的位置编号 2 位移 3 把插入数存放了它应该放的位置 */
不完整
归去来兮