c++编程为题,请大家帮帮忙啊!(编写函数void fun(int*a,int*n,int pos,int x);……)

编写函数void fun(int*a,int*n,int pos,int x);功能是将x值插入到指针a所指的一维数组中,其中指针n所指的存储单元中存放的是数组元素的个数,pos为指定插入位置的下标。
(c++编译)
各位大侠帮帮忙,谢谢啊!
不行啊,能用链表就好了,老师只让用数组,真是的。不过谢谢啊!知道的话帮个忙。

"功能是将x值插入到指针a所指的一维数组中"真插到数组里面岂不是得把插入位置后的数据全部移动一个位置吗,用链表不行吗?
--------------------------------------------
#include<iostream>

using namespace std;
void fun(int*,int*,int,int);
int main(){
int* num = new int[100000];
int size = 100000;
int* n = &size;
int pos = 10,ppos = 11,xx = 99,x = 1000;
fun(num,n,ppos,xx);
fun(num,n,pos,x);
cout<<num[10]<<endl<<num[11]<<endl<<num[12];
return 0;
}
void fun(int* a,int* n ,int pos,int x){
int temp = a[pos];
a[pos] = x;
int nn = *n;
for(int i = pos+1;i<=nn;i++){
int ttp = a[i];
a[i] = temp;
temp = ttp;
}
}

-------------------------
很挫的一个程序,见笑
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-04-08
#include<iostream.h>
void fun(int*a,int*n,int pos,int x)
{
int b,c;
a+=pos;
b=*a;
*a=x;
for(,a<=(*n),)
{
a++;
c=*a;
*a=b;
b=c;
pos++;
c=a[pos];
a[pos]=b;
b=c;
}
}本回答被提问者采纳
第2个回答  2009-04-05
既然一定要插入,那就把第pos个数据保存到变量中。然后把x插进去,然后从最后一个元素开始到第pos+1个元素依次向后移一位
第3个回答  2009-04-08
#include<iostream.h>
void fun(int*a,int*n,int pos,int x)
{
int b,c;
a+=pos;
b=*a;
*a=x;
for(,a<=(*n),)
{
a++;
c=*a;
*a=b;
b=c;
}
}
我多打了
相似回答