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

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

#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++;
}
}
这个是可以的,你运行试试,其实就是用指针去存值,下标后面的值依次后移而已。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-03-13
#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

本回答被网友采纳
相似回答