PTA 数组元素的区间删除

6-6 数组元素的区间删除 (20 分)

给定一个顺序存储的线性表,请设计一个函数删除所有值大于min而且小于max的元素。删除后表中剩余元素保持顺序存储,并且相对位置不能改变。

函数接口定义:

int Delete( int A[], int L, int minA, int maxA );

其中A是整型数组,存储原始线性表的元素;L是表长,即A中元素的个数;minAmaxA分别为待删除元素的值域的下、上界。函数Delete应将A中所有值大于minA而且小于maxA的元素删除,同时保证表中剩余元素保持顺序存储,并且相对位置不变,最后返回删除后的表长。

裁判测试程序样例:

#include <stdio.h>

#define MAXN 20

int Delete( int A[], int L, int minA, int maxA );

int main()
{
    int A[MAXN], L, minA, maxA, i;

    scanf("%d", &L);
    for (i=0; i<L; i++) scanf("%d", &A[i]);
    scanf("%d %d", &minA, &maxA);
    L = Delete(A, L, minA, maxA);
    for (i=0; i<L; i++) printf("%d ", A[i]);
    printf("\n");

    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

10
4 -8 2 12 1 5 9 3 3 10
0 4

输出样例:

4 -8 12 5 9 10 
 1 int Delete( int A[], int L, int minA, int maxA ){
 2     int i,j=0;
 3     int b[L];
 4     for(i=0;i<L;i++)
 5     {
 6       if(A[i]<=minA || A[i]>=maxA)
 7       {
 8          b[j++]=A[i];
 9       }
10     }
11     memcpy(A,b,sizeof(int)*j);
12     return j;
13 }

原文地址:https://www.cnblogs.com/DirWang/p/11929946.html

时间: 2024-11-08 07:06:47

PTA 数组元素的区间删除的相关文章

PTA 线性表元素的区间删除

6-8 线性表元素的区间删除 (20 分) 给定一个顺序存储的线性表,请设计一个函数删除所有值大于min而且小于max的元素.删除后表中剩余元素保持顺序存储,并且相对位置不能改变. 函数接口定义: List Delete( List L, ElementType minD, ElementType maxD ); 其中List结构定义如下: typedef int Position; typedef struct LNode *List; struct LNode { ElementType D

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

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

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)用来查找某元素在数组中的索引位置.

在java中删除数组元素的练习

有一个有序整数数组,要求输入一个数字,在数组中查找是否有这个数,如果有,将该数作为最后一个元素(其他元素仍然有序):如果没有,则显示“数组中没有这个数!” public static void main(String[] args) { int[] m={1,2,3,4,5,6,7,8,9,10}; System.out.println("请输入一个整数:"); Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int ind

约瑟夫问题 算法很简单保证每隔人都能看懂用数组实现 利用循环删除数组中的元素

#include<iostream> using namespace std; const int size = 1000; void ArrDel() { int arr[size]; //循环结束标志,一直循环到数组中只剩下最后一个元素结束 int currentNum = size; int count = 0; for (int k = 0; k < size; k++) { arr[k] = k; } //currentNum==1表示数组中只剩下最后一个元素 是循环结束的标志

JS数组方法汇总 array数组元素的添加和删除

js数组元素的添加和删除一直比较迷惑,今天终于找到详细说明的资料了,先给个我测试的代码^-^ var arr = new Array(); arr[0] = "aaa"; arr[1] = "bbb"; arr[2] = "ccc"; //alert(arr.length);//3 arr.pop(); //alert(arr.length);//2 //alert(arr[arr.length-1]);//bbb arr.pop(); //al

jQuery根据元素值来删除一个数组元素及数组对象方法

在前提不知道b在这个数组的下标,删除b这个元素  var arrList = ['a','b','c','d'];         arrList.splice(jQuery.inArray('b',arrList),1); alert(arrList); 其中jQuery.inArray('b',arrList)是b这个元素在数组arrList 中的位置 splice(index,1)函数中第一个参数index是要删除元素在数组中的位置,第二个参数是要删除的数量. Array对象的方法有: c

删除数组元素并重建索引的方法

我们在用unset($arr($k))来删除数组元素时,会发现被删除的值的索引空了,因为业务的需要,我们有时候需要保留索引 有以下两种方法: 方法一:array_values函数 $arr = array(1,2,3,4); unset($arr[1]); echo $array[1]; // error Undefined offset print_r($arr); // 输出如下 /** Array ( [0] => 1 [2] => 3 [3] => 4 ) **/ $arr =

javascript数组元素的添加、删除与插入以及参数数组的使用

1.数组元素的添加 push方法在数组的尾部添加元素: var colorArray=new Array(); colorArray.push('red','black','yellow'); //这里是直接压入三个元素 //当然也可以这要写 colorArray.push('red'); colorArray.push('black'); 2.数组元素的删除与插入 pop方法删除数组的最后一个元素: var colorArray=new Array(); colorArray.push('re