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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM