已有定义“int a[11]={1,2,3,4,5,6,7,8,9,10};”,要求通过指针完成在一组a中下标为

j(0《j《10)的位置处插入值100。
2024-12-20 18:00:21
推荐回答(4个)
回答1:

#include
void insert(int *p,int i)
{
int j;
for(j=10;j>i;j--)
{
*(p+j)=*(p+j-1);//从数组最后一个元素开始遍历,把遍历到的元素的前一个元素覆盖这个元素
}
*(p+j)=100;
for(j=0;j<11;j++)
{
printf("%d ",*(p+j));//输出新的数组
}
printf("\n");
}
int main()
{
int a[11]={1,2,3,4,5,6,7,8,9,10};
int i;//要在第i个下标插入100
scanf("%d",&i);
insert(a,i);
return 0;
}

回答2:

int *p = a;
for(int i = 10;i>j;i--)
*(p+i) = *(p+i-1);
*(p+i) = 100;

回答3:

if(j>=0 && j <=10)
{

for(int index = 10; index != j; --index)
{
*(arr + index) = *(arr + index -1);
}
*(arr+j) = 100;

}

写的不太好,凑合能用吧。。。

回答4:

要C编程解决?