How to move one-dimensional int array elements to right and delete one element in the process in C

3 Answers

0 votes
#include <stdio.h>

#define SIZE 10

int main(void)
{
	int arr[SIZE] = { 1, 2, 3, 4, 5, 10, 20, 30, 40, 50 };
	
	int insert_idx, i;
 
	insert_idx = 3; // arr[2] = 3
	
	for (i = SIZE - 1; i >= insert_idx; i--) 
		 arr[i] = arr[i - 1];
 
	for (i = 0; i < SIZE; i++)
		printf("%d ", arr[i]);
 
    return 0;
}
  
    
/*
      
run:

1 2 3 3 4 5 10 20 30 40

*/

 



answered Feb 2, 2016 by avibootz
0 votes
#include <stdio.h>

#define SIZE 10

int main(void)
{
	int arr[SIZE] = { 1, 2, 3, 4, 5, 10, 20, 30, 40, 50 };
	
	int insert_idx, i;
 
	insert_idx = 0; // arr[0] = 1 (all array)
	
	for (i = SIZE - 1; i >= insert_idx; i--) 
		 arr[i] = arr[i - 1];
 
	for (i = 0; i < SIZE; i++)
		printf("%d ", arr[i]);
 
    return 0;
}
  
    
/*
      
run:

0 1 2 3 4 5 10 20 30 40

*/

 



answered Feb 2, 2016 by avibootz
0 votes
#include <stdio.h>

int main(void)
{
	int arr[] = { 1, 2, 3, 4, 5, 10, 20, 30, 40, 50 };
	
	int insert_idx, i, arr_size;
 
	insert_idx = 0; // arr[0] = 1 (all array)
	arr_size = sizeof(arr)/sizeof(arr[0]);
	
	for (i = arr_size - 1; i >= insert_idx; i--) 
		 arr[i] = arr[i - 1];
 
	for (i = 0; i < arr_size; i++)
		 printf("%d ", arr[i]);
 
    return 0;
}
  
    
/*
      
run:

0 1 2 3 4 5 10 20 30 40

*/

 



answered Feb 2, 2016 by avibootz
...