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

供稿:hz-xin.com     日期:2025-01-13
例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

C语言编程输入一个数,从一个一维数组删除它?
已经定义的的数组里面是不允许删除元素的,只能把这个数放到数组最后面,遍历的时候不遍历这个数。

2.从键盘任意输入一个一维数组,找出这个一维数组中是大的数?
您好,很高兴为您作答。可以使用如下的C语言程序代码实现:include <stdio.h> int main(){ int n; \/\/用于存储数组的长度 int arr[100]; \/\/用于存储数组的元素 int max; \/\/用于存储数组中最大的数 int i; \/\/用于循环遍历数组 printf("请输入数组的长度:\\n");scanf("%d", &n); \/\/从...

C语言编程:任给定一个一维数组,其中重复的元素只保留一个,然后将这些互...
printf("请输入数据,按ctrl+z结束输入:\\n");i=0;while(scanf("%d", &a[i])!=EOF) i++;n=i; \/\/n为输入数据的个数 m=0; \/\/m为此时数组b中的元素个数 for(i=0; i<n; i++){ for(j=0; j<m; j++) \/\/查找数组b中是否存在该元素 { if(a[i]==b[j]) break;} if(...

C语言,输入一数组,取出所有的前一个小于后一个的元素,组成新的数组,输 ...
current_numbers[i] = num; \/\/ 当前数组元素个数存储一维数组中 array = (int *)malloc(sizeof(int) * num); if (NULL == array) { printf("malloc failed...\\n"); exit(EXIT_FAILURE); } printf("请输入%d个元素: ", num); for (int j = 0; j ...

c语言中怎么把一维数组初始化为全零啊,不用循环
下面3种方法:1.int arr[10]={0};如果只对数组的一部分进行初始化,则编译器将把其他元素设置为0。因此,当只将第一个元素初始化为0时,编译器会自动将其他元素设为0 (就像前一句说的那样)。2.int arr[31]={};3.用memset函数在程序开始时初始化数组。比如:int arr[1024];memset(arr, 0...

用C语言对一维数组排序,并输出已排好元素的原来位置
简单的思路:定义一个指针数组,找到b数组中元素在a数组中的地址,并存储在指针数组对应位置。之后将指针数组内的地址值依次取出来与a数组首地址相减,得到的就是原来的位置。利用的原理:数组内地址是连续的!include <stdio.h>int main(){ int a[5]={3, 8, 4, 7, 6}, b[5]={8, 7,...

c语言中如何把一个一维数组的元素值换成另一个
首先你应该让电脑知道M是位于数组的哪个元素。你应该先找到他。然后你用K赋值给他就可以替换了……语句应该是这样的 fot(i=0;i<10;i++){if(a[i]==M) \/\/找元素 {a[i]=K;break;} \/\/修改值。修改完毕后退出循环后面的就不用找了……如果你要把里面重复的都换的话那么把break;去...

C语言中:将一维数组中的n(n<=50)个数按逆序存放。怎么编程?
思路就是将 数组中第一个和最后一个换位置 第二个和倒数第二个换位置 以此类推 源代码如下:include<stdio.h> int main(){ int n;\/\/n个数字 int i;\/\/循环变量 int num[50];scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&num[i]);for(i=0;i<n\/2;i++){ int t;\/\/交换...

设计C语言程序,用一维数组输入N个整数,将这n个整数按从大到小排列_百度...
给你看看C语言的三种排序方法吧,这是我们老师给总结的,你看懂后就自己在写这个程序吧!一、冒泡法(起泡法)算法要求:用起泡法对10个整数按升序排序。算法分析:如果有n个数,则要进行n-1趟比较。在第1趟比较中要进行n-1次相邻元素的两两比较,在第j趟比较中要进行n-j次两两比较。比较的顺序...

...若函数形参为一维数组作函数参数编写函数,统计某一维数组中非0...
include <stdio.h> int func(int a[],int n){ int i,cnt;for(cnt=0,i=0;i<n;++i)if(a[i])cnt++;return cnt;} int main(){ int a[10]={0,1,2,3,4,5,6,7,8,9};printf("%d\\n",func(a,10));return 0;}