C-Programm zum Verdoppeln des ersten Elements und zum Verschieben von Null an das Ende des angegebenen Arrays

C-Programm zum Verdoppeln des ersten Elements und zum Verschieben von Null an das Ende des angegebenen Arrays

In diesem Blogbeitrag lernen wir, wie man ein C-Programm schreibt, um das erste Element zu verdoppeln und die Null für ein bestimmtes Array ans Ende zu verschieben? Hier nehmen wir an, dass für ein gegebenes Array von n ganzen Zahlen „0“ eine ungültige Zahl ist und alle anderen eine gültige Zahl.

Wir müssen das Array so konvertieren, dass, wenn sowohl das aktuelle als auch das nächste Element gültig und gleich sind, der aktuelle Wert verdoppelt und die nächste Zahl durch 0 ersetzt wird. Ordnen Sie das Array nach der Änderung so an, dass alle Nullen an das Ende verschoben werden .

Beispiel

Input array : int arr[] = {2, 2, 0, 4, 0, 8};

Output array: 4 4 8 0 0 0



Input array: int arr[] = {0, 2, 2, 2, 0, 6, 6, 0, 0, 8};

Output array:  4 2 12 8 0 0 0 0 0 0

 

Algorithmus zum Verdoppeln des ersten Elements und Verschieben der Null ans Ende:

Sehen wir uns also die Logik an, um das erste Element zu verdoppeln und die Null für ein bestimmtes Array ans Ende zu verschieben. Angenommen, arr ist ein gegebenes Eingabe-Integer-Array der Größe N (arr[N] ).

1. Durchlaufen Sie das Array von 0 bis n-1 (einschließlich).

2. Überprüfen Sie den aktuellen und nächsten Wert mit der if-Bedingung. Wenn arr[i] ungleich „0“ ist und (arr[i]==arr[i+1]), wobei arr[i] der aktuelle Wert ist.

  1. Wenn die Bedingung wahr ist, dann verdoppele den aktuellen Wert von self.
  2. Nächstes Element als 0 aktualisieren und i++ ausführen.

3. Nach dem Konvertieren des Arrays müssen Sie alle Nullen an das Ende verschieben. Wir haben bereits einen Artikel darüber geschrieben, wie man am Ende alle Nullen verschiebt, Sie können es überprüfen. Lesen Sie den Artikel.

4 . Im letzten drucken Sie nun das Array aus.

Wenn Sie mehr über die Sprache C erfahren möchten, können Sie diesen Kurs besuchen, kostenlose Testversion verfügbar.

Holen Sie sich Ihre kostenlose Testversion

C-Programm zum Verdoppeln des ersten Elements und Verschieben der Null ans Ende

#include <stdio.h>

//Calculate array size
#define ARRAY_SIZE(a)  sizeof(a)/sizeof(a[0])


//swap function not handle null pointer scenario
//not much safe to use
void swap(int *s1, int *s2)
{
    int temp = *s1;
    *s1 = *s2;
    *s2 = temp;
}


// Function to move all zeros present in the array to the end
void moveAllZeroesAtArrayEnd(int arr[], int n)
{
    int i =0,j = 0;
    // each time we encounter a non-zero, j is incremented and
    // the element is placed before the pivot
    for (i = 0; i < n; i++)
    {
        if (arr[i] != 0)//non-zero
        {
            swap(&arr[i],&arr[j]);
            j++;
        }
    }
}

// function to rearrange the array elements
// after modification
int arrayModification(int arr[], int n)
{
    int i =0;

    const int status  = (n>1)? 0: -1;

    // traverse the array
    for (i = 0; i < n - 1; i++)
    {
        // if current element valid and equal to next
        if ((arr[i] != 0) && (arr[i] == arr[i + 1]))
        {
            // double current index value
            arr[i] = 2 * arr[i];

            // put 0 in the next index
            arr[i + 1] = 0;
            // increment by 1 so as to move two
            // indexes ahead during loop iteration
            i++;
        }
    }
    //call function when input array is valid
    if(status ==0)
    {
        //move all the zeros at the end of the array
        moveAllZeroesAtArrayEnd(arr, n);
    }

    return status;
}


int main()
{
    int arr[] = { 0, 2, 2, 2, 0, 6, 6, 0, 0, 8 };
    int i = 0;

    //get array size
    int arr_size = ARRAY_SIZE(arr);

    //modify and rearrange the array
    const int status = arrayModification(arr, arr_size);

    if(status == 0)
    {
        //print array element
        for (i = 0; i < arr_size; i++)
        {
            printf("%d ",arr[i]);
        }
    }
    else
    {
        printf("Enter valid array !");
    }
    
    return 0;
}

Empfohlene Artikel für Sie:

  • Bestes Geschenk für Programmierer.
  • Beste elektronische Kits für Programmierer.
  • C-Programm, um den Median von zwei sortierten Arrays unterschiedlicher Größe zu finden.
  • C-Programm, um die erste und letzte Position eines Elements in einem sortierten Array zu finden
  • Schreiben Sie ein C-Programm, um die fehlende Zahl in einem gegebenen Integer-Array von 1 bis n zu finden
  • C-Programm, um das beliebteste Element in einem Array zu finden
  • Finde das größte und kleinste Element in einem Array mit C-Programmierung.
  • C-Programm, um sogar vorkommende Elemente in einem Array mit begrenztem Bereich zu finden
  • Finde die Summe aller Sub-Arrays eines gegebenen Arrays.
  • C-Programm zum Trennen gerader und ungerader Zahlen
  • Finde ein Element in einem Array, bei dem die Summe des linken Arrays gleich der Summe des rechten Arrays ist.
  • C-Programm, um die Anzahl der geraden und ungeraden Elemente im Array zu finden.
  • C-Programm schreiben, um die Summe von Array-Elementen zu finden.
  • C-Programm, um ungerade vorkommende Elemente in einem Array mit begrenztem Bereich zu finden
  • Finde die Summe von Array-Elementen mit Rekursion
  • C-Programm zum Umkehren der Elemente eines Arrays
  • C-Programm zum Finden des maximalen und minimalen Elements im Array
  • Berechnen Sie die Größe eines Arrays in ohne sizeof in C
  • Wie erstelle ich ein dynamisches Array in C?