删除数组零元素

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3
 4 //函数声明
 5 int CompactIntegers(int *p,int n);
 6
 7 int main()
 8 {
 9     int i;
10     int n,n_final; //n:用于记录要输入的整数个数;n_final:用于记录删除数组中的0元素后数组的长度
11     int *p; //用于指向动态分配的数组空间
12
13     scanf("%d",&n);//输入要输入的整数的个数
14
15     p=calloc(n,sizeof(int)); //动态分配 n 个长度为sizeof(int)连续空间——动态数组(数组元素的个数为 n,类型为int)
16
17     for(i=0;i<n;i++) //输入 n 个整数
18         scanf("%d",p+i);
19
20     n_final=CompactIntegers(p,n); //调用函数 CompactIntegers ,删除数组中所有值为0的元素,其后元素向数组首端移动
21
22     printf("%d\n",n_final); //输出删除数组中的0元素后数组的长度
23
24     for(i=0;i<n_final;i++) //输出删除数组中的0元素后的数组元素
25         printf("%d ",*(p+i));
26
27     return 0;
28 }
29
30 //删除数组中所有值为0的元素,其后元素向数组首端移动
31 int CompactIntegers(int *p,int n)
32 {
33     int i,j;
34     int n_temp; //用于记录删除 0 元素过程中数组的临时长度
35
36     n_temp=n; //赋数组的临时长度为原始长度 n
37
38     for(i=0;i<n_temp;i++) //遍历数组中的元素
39     {
40         if(*(p+i)==0) //找到 0 元素
41         {
42             for(j=i;j<n_temp;j++) //删除数组中所有值为0的元素,其后元素向数组首端移动
43                 *(p+j)=*(p+j+1);
44             i--;
45             n_temp--; //数组的临时长度减 1
46         }
47     }
48
49     return n_temp;
50 }
时间: 2024-11-15 15:08:27

删除数组零元素的相关文章

ALGO-79 删除数组零元素

算法训练 删除数组零元素 时间限制:1.0s   内存限制:512.0MB 从键盘读入n个整数放入数组中,编写函数CompactIntegers,删除数组中所有值为0的元素,其后元素向数组首端移动.注意,CompactIntegers函数需要接受数组及其元素个数作为参数,函数返回值应为删除操作执行后数组的新元素个数.输出删除后数组中元素的个数并依次输出数组元素. 样例输入: (输入格式说明:5为输入数据的个数,3 4 0 0 2 是以空格隔开的5个整数)5 3 4 0 0 2样例输出:(输出格式

算法训练——删除数组零元素

//删除数组零元素 #include<stdio.h> int main(){ int i,n,count; scanf("%d",&n); int a[n]; for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=0;i<n;i++){ if(a[i] != 0){ printf("%d ",a[i]); } } return 0; } 原文地址:https://www.cn

算法训练 删除数组零元素

时间限制:1.0s   内存限制:512.0MB 从键盘读入n个整数放入数组中,编写函数CompactIntegers,删除数组中所有值为0的元素,其后元素向数组首端移动.注意,CompactIntegers函数需要接受数组及其元素个数作为参数,函数返回值应为删除操作执行后数组的新元素个数.输出删除后数组中元素的个数并依次输出数组元素. 样例输入: (输入格式说明:5为输入数据的个数,3 4 0 0 2 是以空格隔开的5个整数) 5 3 4 0 0 2 样例输出:(输出格式说明:3为非零数据的个

删除数组零元素 ---蓝桥杯

从键盘读入n个整数放入数组中,编写函数CompactIntegers,删除数组中所有值为0的元素,其后元素向数组首端移动.注意,CompactIntegers函数需要接受数组及其元素个数作为参数,函数返回值应为删除操作执行后数组的新元素个数.输 出删除后数组中元素的个数并依次输出数组元素. 样例输入: (输入格式说明:5为输入数据的个数,3 4 0 0 2 是以空格隔开的5个整数) 5 3 4 0 0 2 样例输出:(输出格式说明:3为非零数据的个数,3 4 2 是以空格隔开的3个非零整数) 3

蓝桥杯——删除数组零元素

从键盘读入n个整数放入数组中,编写函数CompactIntegers,删除数组中所有值为0的元素,其后元素向数组首端移动.注意,CompactIntegers函数需要接受数组及其元素个数作为参数,函数返回值应为删除操作执行后数组的新元素个数.输出删除后数组中元素的个数并依次输出数组元素. 样例输入: (输入格式说明:5为输入数据的个数,3 4 0 0 2 是以空格隔开的5个整数) 5 3 4 0 0 2 样例输出:(输出格式说明:3为非零数据的个数,3 4 2 是以空格隔开的3个非零整数) 3

javascript 笔试题之删除数组重复元素

笔试时紧张没写出来,静下心后发现简单的要死. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="en"> <head> <meta http-equiv="Content-Type" content=&quo

js删除数组元素中的指定值

js删除数组元素中的指定值:所谓删除数组元素中指定的值,就是删除具有指定的数组项,下面就通过实例代码代码介绍一下如何实现此功能.代码如下: var theArray=["蚂蚁部落",2,"青岛市南区","antzone","蚂蚁部落"]; for(var i=0;i<theArray.length;i++){ if(theArray[i]=="蚂蚁部落"){ theArray.splice(i,1);

js删除数组里的某个元素

首先可以给js的数组对象定义一个函数,用于查找指定的元素在数组中的位置,即索引,代码为: Array.prototype.indexOf = function(val) { for (var i = 0; i < this.length; i++) { if (this[i] == val) return i; } return -1; }; 然后使用通过得到这个元素的索引,使用js数组自己固有的函数去删除这个元素:代码为: Array.prototype.remove = function(v

js删除数组元素、清空数组的简单方法

一.清空数组 var ary = [1,2,3,4]; ary.splice(0,ary.length);//清空数组 console.log(ary); // 输出 [],空数组,即被清空了 二.删除数组元素 var ary = [1,2,3,4]; ary.splice(0,1); 或 ary.splice($.inArray(2, ary), 1); 其中$.inArray(2, ary)用来查找某元素在数组中的索引位置.