以下函数用来在w数组中插入x. n所指向的储存单元中存放w数组中字符个数. 数组中的字符已按从大到小的顺序排列,插入后数组w中的字符仍有序.
请填空;
void fun(char *w,char x,int *n)
{ int i,p;
p=0;
w[*n]=x;
while(x>w[p]) p++;
for(i=*n;i>p;i--) w[i]=____________;
w[p]=x;
++*n;
}
我想应该添w[i-1] 对吗???
參考答案:是w[i-1].如果是w[i+1]
for循环第一次执行时i+1就为*n+1了,这个位置上的值是不确定的.
w[*n]=x; //这里是把x放在最后(没多大意义,在下面的
// for循环第一次执行时被它前面的元素冲掉).
while(x>w[p]) p++; //这里是找到x应该所在的位置.
//下面就是要把当前p位置及其以后的元素往后移一个位置.
for(i=*n;i>p;i--) w[i]=____________;
//最后腾出的p位置上放置x.
w[p]=x;
//n既做输入,又做输出.插入以后元素个数加1
++*n;