当前位置:网站首页>Preliminary practice of niuke.com (9)

Preliminary practice of niuke.com (9)

2022-07-07 05:31:00 Deer nine pills

Catalog

1. Deletes the specified number from the sequence

 2. Integer de duplication in sequence

Method 1:

Method 2:

3. Ordered sequence merging


1. Deletes the specified number from the sequence

#include<stdio.h>
int main()
{
    int n = 0;
    int arr[50] = { 0 };
    int delete = 0;
    scanf("%d", &n);
    for (int i = 0; i < n; i++)
    {
        scanf("%d", &arr[i]);
    }
    scanf("%d", &delete);
    int i = 0;
    int j = 0;
    for (i = 0, j = 0; i < n; i++)
    {//i The role of : Traversal array 
     //j The role of : Record the subscript where the data is stored 
        if (arr[i] != delete)
        {
            arr[j++] = arr[i];
        }
        // At this time j The data stored in is the number of elements left after deleting elements 

    }
    for (int i = 0; i < j; i++)
    {
        printf("%d ", arr[i]);
    }
    return 0;
}

 2. Integer de duplication in sequence

Method 1:

( Compare with the previous elements )

#include<stdio.h>
int main()
{
    int n = 0;
    int arr[1000] = { 0 };
    scanf("%d", &n);
    int i = 0;
    int j = 0;
    for (i = 0; i < n; i++)
    {
        scanf("%d", &arr[i]);
    }
    // duplicate removal 
    j = 1;
    for (i = 1; i < n; i++)// Start traversing from the second 
    {
        int flag = 0;
        for (int k = 0; k < i; k++)
        {
            if (arr[k] == arr[i])
            {
                flag = 1;
            }
        }
        if (flag != 1)
        {
            arr[j++] = arr[i];
        }// The method here is similar to that of the above question 
    }
    for (int i = 0; i < j; i++)
    {
        printf("%d ", arr[i]);
    }
    return 0;
}

Method 2:

#include<stdio.h>
int main()
{
    int n = 0;
    int arr[1000] = { 0 };
    scanf("%d", &n);
    int i = 0;
    int j = 0;
    for (i = 0; i < n; i++)
    {
        scanf("%d", &arr[i]);
    }
    // duplicate removal 
    for (i = 0; i < n; i++)
    {
        // Judge arr[i] Has it ever appeared in the back 
        int j = 0;
        for (j = i + 1; j < n; j++)
        {
            if (arr[i] == arr[j])
            {
                // duplicate removal , That is, the following elements cover the front 
                int k = 0;
                for (k = j; k < n - 1; k++)
                {
                    arr[k] = arr[k + 1];
                }
                n--;
                j--;// Prevent the covering up from still being the same as the front arr[i] Elements repeat 
            }
        }
    }
    for (int i = 0; i < n; i++)
    {
        printf("%d ", arr[i]);
    }
    return 0;
}

3. Ordered sequence merging

#include<stdio.h>
#include<malloc.h>
int main()
{
    int n = 0;
    int m = 0;
    int all = m+n;
    int i = 0;
    // Input n and m
    scanf("%d %d",&n,&m);
    int *arr1 = (int *)malloc(sizeof(int)*n);
    int *arr2 = (int *)malloc(sizeof(int)*m);
    int *arr3 = (int *)malloc(sizeof(int)*(m+n));
    // Enter two ordered arrays 
    for(int i = 0;i<n;i++)
    {
        scanf("%d",&arr1[i]);
    }
    for(int i = 0;i<m;i++)
    {
        scanf("%d",&arr2[i]);
    }
    // Merge array 
    i = 0;
    int j = 0;
    int k = 0;
    while(i<n&&j<m)
    {
        if(arr1[i]<arr2[j])
        {
            arr3[k++] = arr1[i++];
        }
        else
        {
            arr3[k++] = arr2[j++];
        }
    }
    if(i==n)
    {
        for(;j<m;j++)
        {
            arr3[k++] = arr2[j];
        }
    }
    else
    {
        for(;i<n;i++)
        {
            arr3[k++] = arr1[i];
        }
    }
    for( i =0;i<k;i++)
    {
        printf("%d ",arr3[i]);
    }
    return 0;
}
原网站

版权声明
本文为[Deer nine pills]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202130735444838.html