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

已有定义“inta[11]={1,2,3,4,5,6,7,8,9,10};”要求通过指针完成在一微数组a中下标为j的位置插入值100... 已有定义“int a[11]={1,2,3,4,5,6,7,8,9,10};”要求通过指针完成在一微数组a中下标为j的位置插入值100 展开
 我来答
liwei198905
推荐于2016-01-06 · 超过22用户采纳过TA的回答
知道答主
回答量:40
采纳率:0%
帮助的人:42.1万
展开全部
#include <stdio.h>

void Insert(int *, int, int);

int main()
{
int a[11] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int i;
Insert(a, 5, 100);
for (i = 0; i < 11; i++)
{
printf("%d ", a[i]);
}
printf("\n");
return 0;
}

void Insert(int *p, int j, int data)
{
int data1;
while (j !=11)
{
data1 = *(p + j);
*(p + j) = data;
data = data1;
j++;
}
}
这个是可以的,你运行试试,其实就是用指针去存值,下标后面的值依次后移而已。
沧海雄风2009
推荐于2018-03-13 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8525
采纳率:79%
帮助的人:2982万
展开全部
#include <stdio.h>

void fun(int *p)
{
int i=0,j=0,k=0;;
printf("请输入下标:");
scanf("%d",&j);
if (j>=0 && j<=9)
{
for (i=0;i<10;i++)
{
if (i==j)
{
for (k=9;k>=j;k--)
{
*(p+k+1)=*(p+k); 
}
*(p+j) = 100;
}
}
}else
{
printf("位置错误!\n");
}
}

void main()
{
int i=0,a[11]={1,2,3,4,5,6,7,8,9,10};
fun(a);
for (i=0;i<11;i++)
{
printf("%d ",a[i]);
}
}
请输入下标:3
1 2 3 100 4 5 6 7 8 9 10 Press any key to continue
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式