C语言数组问题,请教!@@@@@@

1.请详细讲解下往一个数组里插入一个元素,用程序举例,并详细讲解每步~~~~~

2.再请详细讲解下数组里删除一个元素,用程序举例,并详细讲解每步

(例如加入一个K,删除一个K)

比较粗糙的写了一个,向有序数组中插入和删除元素的程序。
在vc6.0下调试通过。
#include <stdio.h>
void InsertArr(int a[],int len) //向数组中插入一个元素
{
int i,k,flag,temp;
printf("please input a number:\n");
scanf("%d",&k);
for(i=len-1;i>=0;i--)
{
if(k>a[i])
flag=i; //寻找并记录插入位置
}
temp=a[len-1]; //记录数组最后一个元素
for(i=len-1;i>flag;i--)
a[i]=a[i-1]; //每个元素向后移1位
a[flag]=k; //将新元素插入数组中
a[len]=temp; //此时数组长度加1
for(i=0;i<=len;i++)
printf("%4d",a[i]); //遍历数组元素并输出
printf("\n");
}

void DelArr(int a[],int len) //删除数组中的某一个元素
{
int i,k,flag=-1;
printf("please input a number:\n");
scanf("%d",&k);
for(i=0;i<len;i++)
if(k==a[i])
flag=i; //记录删除的元素的位置
if(flag==-1) //说明没k于a中的元素都不相等
printf("the number is not in the array!!");
else
{
for(i=flag;i<len-1;i++)
a[i]=a[i+1]; //每个元素向前移1位
a[len-1]=0; //将最后个元素置0,因为整个数组少了一个元素,他的值保存在a[len-2]中
for(i=0;i<len-1;i++)
printf("%4d",a[i]); //遍历数组元素并输出
printf("\n");
}
}
void main()
{
int a[10]={20,10,7,5,2}; //该数组是个有序数组
InsertArr(a,5);
DelArr(a,6);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-06-23
1
知道数组的下标就可以赋值
int a[10];
a[0] = 0;

2
赋值后可以改变,也就是重新赋值,但删除?程序运行完后内存就会被释放,可以重新分配给其他请求内存的程序,但这块内存中可能还会有内容。所以在程序设计的时候千万不要引用未初始化的变量。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网