w3resource

C Exercises: Update every array element with multiplication of previous and next numbers in array

C Array: Exercise-103 with Solution

Write a program in C to update every array element with multiplication of previous and next numbers in array.

Expected Output:
The given array is:
1 2 3 4 5 6
The new array is:
2 3 8 15 24 30

The task is to write a C program that updates each element in an array by multiplying its previous and next elements. For the first element, multiply by the next element, and for the last element, multiply by the previous element. The program should iterate through the array, perform the required multiplications, and then display the updated array.

Sample Solution:

C Code:

#include<stdio.h>

// Function to create a new array where each element is the product of its adjacent elements
void newArryPrevNext(int arr1[], int n) 
{ 
    if (n <= 1)  // If the array has 0 or 1 element, no change is made
        return; 

    int pre_elem = arr1[0]; // Store the first element initially
    arr1[0] = arr1[0] * arr1[1]; // Update the first element by multiplying with the next element

    // Loop through the array from 2nd to (n-1)th element
    for (int i = 1; i < n - 1; i++) 
    { 
        int cur_elem = arr1[i]; // Store the current element
        arr1[i] = pre_elem * arr1[i + 1]; // Multiply the previous element with the next element and assign to current
        pre_elem = cur_elem; // Update the previous element for the next iteration
    } 

    arr1[n - 1] = pre_elem * arr1[n - 1]; // Update the last element of the array by multiplying it with the previous element
} 

int main() 
{ 
    int arr1[] = {1, 2, 3, 4, 5, 6}; // Given array
    int n = sizeof(arr1) / sizeof(arr1[0]); // Calculate the size of the array
    int i = 0; 

    // Print the original array
    printf("The given array is:  \n");
    for(i = 0; i < n; i++)
    {
        printf("%d  ", arr1[i]);
    }
    printf("\n");

    // Process the array to create a new array with elements as the product of adjacent elements
    printf("The new array is: \n");	
    newArryPrevNext(arr1, n); 

    // Display the elements of the new array
    for (int i = 0; i < n; i++) 
    {
        printf("%d ", arr1[i]); 
    }

    return 0; 
}

Output:

The given array is:  
1  2  3  4  5  6  
The new array is: 
2 3 8 15 24 30 

Visual Presentation:

C Exercises: Update every array element with multiplication of previous and next numbers in array

Flowchart:

Flowchart:  Update every array element with multiplication of previous and next numbers in array

C Programming Code Editor:

Previous: Write a program in C to rearrange an array in such an order that– smallest, largest, 2nd smallest, 2nd largest and on.
Next: Write a program in C to rearrange an array such that even index elements are smaller and odd index elements are greater than their next.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://www.w3resource.com/c-programming-exercises/array/c-array-exercise-103.php