C Program to convert the array to double its value and replace the next number with 0

Write a program to convert the array in such a way that double its value and replace the next number with 0 if the current and next element are the same and rearrange the array such that all 0’s shifted to the end. 

For Example:

The given array is: 0 3 3 3 0 0 7 7 0 9
The new array is: 6 3 14 9 0 0 0 0 0 0

Explanation :

  • In the given array the second and third element is equal hence doubling the first 3 and making the next index value 0.
  • The element which is in the third index doesn’t have any match so leave it as it is. finally, move all zeros to the end

Input Format:
The input contains an integer N which is the size of the array and in the next line N elements will be there 

Constraints:
1<=N<=100
1<=arr[i] <=1000

Output Format:
Print the updated array with the space

 Sample Input 1

10
0 3 3 3 0 0 7 7 0 9

Sample Output 1

6 3 14 9 0 0 0 0 0 0 

Code:

#include<stdio.h> int main() { int n; int a[100]; int i=0; scanf("%d",&n); for(;i<n;i++) scanf("%d",&a[i]); for(int j=0;j<n-1;j++) { if(a[j] == a[j+1]) { a[j]=2*a[j]; a[j+1]=0; } } i=0; for(int j=0;j<n;j++) { if(a[j]!=0) printf("%d ",a[j]); else i++; } for(int j=0;j<i;j++) printf("0 "); }
Code language: C/AL (cal)

Leave a Comment