C语言,怎样往一个已知的数组指定位置里面加新元素

来源:百度知道 编辑:UC知道 时间:2024/06/01 22:01:26
#include<stdio.h>
void main()
{int a[100],c,d,i;
printf("please input two digits\n");
scanf("%d %d",&c,&d);
a[0]=1;a[1]=2;a[3]=3;a[4]=4;a[5]=5;a[6]=6;a[7]=7;a[8]=8;a[9]=9;
if(c>=0&&c<10)
{for(i=10;i>=c;i--)
a[i+1]=a[i];
a[c]=d;}
else printf("it is error!");
for(i=0;i<=10;i++)
printf("%d",a[i]);
}
这是我的一个程序,帮忙看看哪里错了?谢谢

数组初始化的时候是不是把A[2]弄掉了?

你的程序已经实现了把a[c]后面的数依次后移,然后a[c]=d的功能,不过由于a[2]未赋初值,会显示一个随机数

#include<stdio.h>
void main()
{int a[100],c,d,i;
printf("please input two digits\n");
scanf("%d %d",&c,&d);
a[0]=1;a[1]=2; //下面为什么是a[3]而不是a[2]额??
a[3]=3;a[4]=4;a[5]=5;a[6]=6;a[7]=7;a[8]=8;a[9]=9;
if(c>=0&&c<10)
{for(i=10;i>=c;i--)
a[i+1]=a[i];
a[c]=d;}
else printf("it is error!");
for(i=0;i<=10;i++)
printf("%d",a[i]);
}

a[2]没有赋值

不知道你C的意思是什么,是第几个元素的意思吗?如果是的话,C这个还要修改下哦。

a[i+1]=a[i];
a[c]=d;
变成
a[i]=a[i-1]
a[c-1]=d;

赋初值如下:
int a[100]={};