分类：电脑/网络-软件
问题：帮我解释一个C语言问题//在有序顺序表中插入x，插入后仍为有序的 
 //在有序顺序表中插入x，插入后仍为有序的。//递增排序顺序表#define length 256#include "std.h"#include "stdlib.h"struct {  int a[length];  int n;    int listsize;}L;void sort(int *b,int n){  int j,i,k,temp;  for(i=0;i<n;++i)  {    j=i;    for(k=i+1;k<n;k++)     //在有序顺序表中插入x，插入后仍为有序的。//递增排序顺序表#define length 256#include "std.h"#include "stdlib.h"struct {  int a[length];  int n;    int listsize;}L;void sort(int *b,int n){  int j,i,k,temp;  for(i=0;i<n;++i)  {    j=i;    for(k=i+1;k<n;k++)      if (b[k]<b[j])      {        j=k;      }      if(j!=i)      {        temp=b[j];        b[j]=b[i];        b[i]=temp;      }  }  };//sort has been true//插入函数void insert(int *b,int x,int n){  int i,j=n,temp;  for(i=0;b[i]<x&&i<n;i++);  while(j>i)  {    b[j]=b[j-1];    j--;  }  b[i]=x;}main(){  int i;  int x;  printf("请输入表中数据个数n\n");  scanf("%d",&L.n);  if (L.n>length)  {    printf("溢出");    return 0;  }  for(i=0;i<L.n;i++)  {printf("请输入表中数据a[%d]\n\n",i);  scanf("%d",&L.a[i]);  }//print data over  sort(L.a,L.n);  for(i=0;i<L.n;i++)    printf("%d\n",L.a[i]);  printf("please input the number you want to insert\n");  scanf("%d",&x);  insert(L.a,x,L.n);    for(i=0;i<=L.n;i++)    printf("%d\n",L.a[i]);}这段程序的子函数时怎样将原数据改变顺序或者插入的呀？我怎么想不明白，指针不是调用地址么，地址的转换怎么会导致数据的调换呢？
回答：可以从后面向后写程序啊，这样你要的算法就可以实现了!

我能帮你用Java写，可能你不要！