用C语言实现一维数组中删除第N个元素的程序怎么写

帮个忙,我急用

#include<stdio.h>

int main()

{

int arr[]={1,3,10,5,4,} ;

int delect=0;

int i=0,j=0,k=0,t;

int n;//n为数组长度 

n=sizeof(arr)/sizeof(int);

//printf("%d\n",n);//测试n

printf("删除前数组为:");

for(k=0;k<=n-1;k++)

{

printf("%4d",arr[k]);

}

printf("\n"); 

printf("请输入要删除第几个数: \n");

scanf("%d",&t);

for(j=t-1;j<=n-2;j++)

arr[j]=arr[j+1];

printf("删除后数组为:");

for(k=0;k<=n-2;k++)

{

printf("%4d",arr[k]);

}

}

扩展资料:

数组使用规则:

1.可以只给部分元素赋初值。当{ }中值的个数少于元素个数时,只给前面部分元素赋值。例如:static int a[10]={0,1,2,3,4};表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。

2.只能给元素逐个赋值,不能给数组整体赋值。例如给十个元素全部赋1值,只能写为:static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能写为:static int a[10]=1;请注意:在C、C#语言中是这样,但并非在所有涉及数组的地方都这样,数据库是从1开始。

3.如不给可初始化的数组赋初值,则全部元素均为0值。

4.如给全部元素赋值,则在数组说明中, 可以不给出数组元素的个数。例如:static int a[5]={1,2,3,4,5};可写为:static int a[]={1,2,3,4,5};动态赋值可以在程序执行过程中,对数组作动态赋值。这时可用循环语句配合scanf函数逐个对数组元素赋值。

参考资料:

百度百科-数组

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-20
设数组大小为M,删掉第N个元素。
int i;
for(i=N;i<M;i++)
a[i-1]=a[i];
a[M-1]=0;本回答被网友采纳
第2个回答  2013-07-20
下面是伪代码,思路是,打到第N个元素,用后面的元素将前面的覆盖。
for(int i=0;i<arrlen;i++)
{
if(i==N-1)//找到第N个元素
{
for(int j=N-1;j<arrlen-1;j++)
arr[j]=arr[j+1];
}
}
第3个回答  推荐于2017-09-10
例6-2 将10个整数存入数组,删除数组中的某个元素。例如,数组中有1,2,3,4,5,6,7,8,9,10共10个元素,删除第5个元素后,数组中剩下9个元素1,2,3,4,6,7,8,9,10。
首先定义一个长度为10的int型数组,用来存放10个整数。用循环输入数组的每个元素,以及要删除元素的序号(假设序号为n)。
使用循环,将数组中序号n后的所有元素向前移动一位,然后删除最后一个元素。这里要注意数组的下标是从0开始的,序号为n的数组元素,对应数组的下标应该是n-1。
读者可以思考:如果本例是向数组插入一个元素,循环应该如何来写?
main()
{
int nArray[10], i,num;

/*输入10个整数*/
printf("\nPlease input 10 integers: ");
for(i=0;i<10;i++)
scanf("%d",& nArray [i]);

/*输入要删除的元素序号*/
printf("\nPlease input sequence number of the element to delete: ");
scanf("%d",&num);

/*从nArray [num](第num+1个元素)开始,依次向前移动一位*/
for(i=num;i<10;i++)
nArray [i-1]= nArray [i];

/*删除最后一个元素*/
nArray [10]=0;

/*输出处理后的数组,最后一位不需要输出*/
printf("\nProcessed array: ");
for(i=0;i<9;i++)
printf("%d ", nArray [i]);
}
程序运行后,输入10个整数:
Please input 10 integers: 1 2 3 4 5 6 7 8 9 10
Please input sequence number of the element to delete: 5
Processed array: 1 2 3 4 6 7 8 9 10
第4个回答  2013-07-20
哎.有哪位老大收小弟呀
相似回答