Reverse the part of the number which is present from
position i to j. Print the new number.
eg:
num=789876
i=2
j=5
778986

Answer Posted / abdur rab

#include <stdio.h>

void reverse ( int* ip_array, int st_pos, int ed_pos )
{
if ( ( ip_array ) && ( st_pos < ed_pos ) ) {
* ( ip_array + st_pos ) ^= * ( ip_array +
ed_pos ) ^= * ( ip_array + st_pos ) ^= * ( ip_array +
ed_pos );
reverse ( ip_array, ++st_pos, --ed_pos );
}
}

int main ( int argc, char* argv [] )
{
int int_array [20];
int number = 789876;
int counter = 0;
int nloop = 0;
int start_pos = 2;
int end_pos = 5;

/* split the number into an array */
while ( number ) {
int_array [ counter++ ] = number % 10;
number = number / 10;
}

/* reverse the splited array */
reverse ( int_array, 0, counter - 1 );

/* reverse for the particular position */
if ( ( start_pos < end_pos ) && ( end_pos <=
counter ) ) {
reverse ( int_array, ( start_pos - 1 ), (
end_pos - 1 ) );

number = 0;
for ( nloop = 0; nloop < counter; nloop++ )
{
number *= 10;
number += int_array [ nloop ];
}

printf ( "\n %d", number );
}

return ( 0 );
}

Is This Answer Correct ?    2 Yes 1 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

What does c in a circle mean?

591


Write a program to reverse a given number in c?

605


why do some people write if(0 == x) instead of if(x == 0)?

666


What is break in c?

596


Explain the difference between exit() and _exit() function?

645






What is a #include preprocessor?

633


Array is an lvalue or not?

648


What is the purpose of 'register' keyword?

704


What are the valid places to have keyword “break”?

659


What is default value of global variable in c?

574


What is the benefit of using an enum rather than a #define constant?

677


How can I recover the file name given an open stream or file descriptor?

603


What is the explanation for cyclic nature of data types in c?

659


In C language, a variable name cannot contain?

759


What is null pointer constant?

603