#include <stdio.h>
#define MAx 10
int search( int arr[ ] , int n, int element) {
for ( int i = 0 ; i < n; i++ ) {
if ( arr[ i] == element)
return i;
}
return - 1 ;
}
void insert_first( int arr[ ] , int n, int z) {
for ( int i = n; i > 0 ; i-- ) {
arr[ i] = arr[ i - 1 ] ;
}
arr[ 0 ] = z;
}
int insert_at_position( int arr[ ] , int n, int pos, int val) {
if ( pos < 0 || pos > n) {
printf ( "Invalid position.\n " ) ; return n;
}
for ( int i = n; i > pos; i-- ) {
arr[ i] = arr[ i - 1 ] ;
}
arr[ pos] = val;
return n + 1 ;
}
int delete_last( int n) {
if ( n > 0 )
return n - 1 ;
printf ( "Array is already empty.\n " ) ; return n;
}
int delete_at_position( int arr[ ] , int n, int pos) {
if ( pos < 0 || pos >= n) {
printf ( "Invalid position.\n " ) ; return n;
}
for ( int i = pos; i < n - 1 ; i++ ) {
arr[ i] = arr[ i + 1 ] ;
}
return n - 1 ;
}
void print( int arr[ ] , int n) {
if ( n == 0 ) {
return ;
}
for ( int i = 0 ; i < n; i++ ) {
}
}
int main( ) {
int n;
printf ( "Enter the size of array: " ) ;
if ( n > MAx || n < 0 ) {
printf ( "Size exceeds maximum limits.\n " ) ; return 1 ;
}
int arr[ MAx] ;
for ( int i = 0 ; i < n; i++ ) {
}
int choice;
do {
printf ( "1. Search for element\n " ) ; printf ( "2. Insert at first\n " ) ; printf ( "3. Insert at position\n " ) ; printf ( "4. Delete last element\n " ) ; printf ( "5. Delete at position\n " ) ;
printf ( "Enter your choice: " ) ;
int x, pos;
switch ( choice) {
case 1 :
printf ( "Value you want to search: " ) ; pos = search( arr, n, x) ;
if ( pos == - 1 )
else
printf ( "Found at position %d\n " , pos
+ 1 ) ; break ;
case 2 :
if ( n >= MAx) {
break ;
}
printf ( "Enter value to insert at first: " ) ; insert_first( arr, n, x) ;
n++;
print( arr, n) ;
break ;
case 3 :
if ( n >= MAx) {
break ;
}
printf ( "Enter position (0 to %d) and value: " , n
) ; scanf ( "%d %d" , & pos
, & x
) ; n = insert_at_position( arr, n, pos, x) ;
print( arr, n) ;
break ;
case 4 :
n = delete_last( n) ;
print( arr, n) ;
break ;
case 5 :
printf ( "Enter position to delete (0 to %d): " , n
- 1 ) ; n = delete_at_position( arr, n, pos) ;
print( arr, n) ;
break ;
case 6 :
print( arr, n) ;
break ;
case 0 :
break ;
default :
printf ( "Invalid choice. Try again.\n " ) ; }
} while ( choice != 0 ) ;
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNkZWZpbmUgTUF4IDEwCgppbnQgc2VhcmNoKGludCBhcnJbXSwgaW50IG4sIGludCBlbGVtZW50KSB7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIGlmIChhcnJbaV0gPT0gZWxlbWVudCkKICAgICAgICAgICAgcmV0dXJuIGk7CiAgICB9CiAgICByZXR1cm4gLTE7Cn0KCnZvaWQgaW5zZXJ0X2ZpcnN0KGludCBhcnJbXSwgaW50IG4sIGludCB6KSB7CiAgICBmb3IgKGludCBpID0gbjsgaSA+IDA7IGktLSkgewogICAgICAgIGFycltpXSA9IGFycltpIC0gMV07CiAgICB9CiAgICBhcnJbMF0gPSB6Owp9CgppbnQgaW5zZXJ0X2F0X3Bvc2l0aW9uKGludCBhcnJbXSwgaW50IG4sIGludCBwb3MsIGludCB2YWwpIHsKICAgIGlmIChwb3MgPCAwIHx8IHBvcyA+IG4pIHsKICAgICAgICBwcmludGYoIkludmFsaWQgcG9zaXRpb24uXG4iKTsKICAgICAgICByZXR1cm4gbjsKICAgIH0KICAgIGZvciAoaW50IGkgPSBuOyBpID4gcG9zOyBpLS0pIHsKICAgICAgICBhcnJbaV0gPSBhcnJbaSAtIDFdOwogICAgfQogICAgYXJyW3Bvc10gPSB2YWw7CiAgICByZXR1cm4gbiArIDE7Cn0KCmludCBkZWxldGVfbGFzdChpbnQgbikgewogICAgaWYgKG4gPiAwKQogICAgICAgIHJldHVybiBuIC0gMTsKICAgIHByaW50ZigiQXJyYXkgaXMgYWxyZWFkeSBlbXB0eS5cbiIpOwogICAgcmV0dXJuIG47Cn0KCmludCBkZWxldGVfYXRfcG9zaXRpb24oaW50IGFycltdLCBpbnQgbiwgaW50IHBvcykgewogICAgaWYgKHBvcyA8IDAgfHwgcG9zID49IG4pIHsKICAgICAgICBwcmludGYoIkludmFsaWQgcG9zaXRpb24uXG4iKTsKICAgICAgICByZXR1cm4gbjsKICAgIH0KICAgIGZvciAoaW50IGkgPSBwb3M7IGkgPCBuIC0gMTsgaSsrKSB7CiAgICAgICAgYXJyW2ldID0gYXJyW2kgKyAxXTsKICAgIH0KICAgIHJldHVybiBuIC0gMTsKfQoKdm9pZCBwcmludChpbnQgYXJyW10sIGludCBuKSB7CiAgICBpZiAobiA9PSAwKSB7CiAgICAgICAgcHJpbnRmKCJBcnJheSBpcyBlbXB0eS5cbiIpOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgcHJpbnRmKCIlZCAiLCBhcnJbaV0pOwogICAgfQogICAgcHJpbnRmKCJcbiIpOwp9CgppbnQgbWFpbigpIHsKICAgIGludCBuOwogICAgcHJpbnRmKCJFbnRlciB0aGUgc2l6ZSBvZiBhcnJheTogIik7CiAgICBzY2FuZigiJWQiLCAmbik7CgogICAgaWYgKG4gPiBNQXggfHwgbiA8IDApIHsKICAgICAgICBwcmludGYoIlNpemUgZXhjZWVkcyBtYXhpbXVtIGxpbWl0cy5cbiIpOwogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgIGludCBhcnJbTUF4XTsKICAgIHByaW50ZigiR2l2ZSBlbGVtZW50czpcbiIpOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBzY2FuZigiJWQiLCAmYXJyW2ldKTsKICAgIH0KCiAgICBpbnQgY2hvaWNlOwogICAgZG8gewogICAgICAgIHByaW50ZigiXG5NZW51OlxuIik7CiAgICAgICAgcHJpbnRmKCIxLiBTZWFyY2ggZm9yIGVsZW1lbnRcbiIpOwogICAgICAgIHByaW50ZigiMi4gSW5zZXJ0IGF0IGZpcnN0XG4iKTsKICAgICAgICBwcmludGYoIjMuIEluc2VydCBhdCBwb3NpdGlvblxuIik7CiAgICAgICAgcHJpbnRmKCI0LiBEZWxldGUgbGFzdCBlbGVtZW50XG4iKTsKICAgICAgICBwcmludGYoIjUuIERlbGV0ZSBhdCBwb3NpdGlvblxuIik7CiAgICAgICAgcHJpbnRmKCI2LiBWaWV3IGFycmF5XG4iKTsKICAgICAgICBwcmludGYoIjAuIEV4aXRcbiIpOwoKICAgICAgICBwcmludGYoIkVudGVyIHlvdXIgY2hvaWNlOiAiKTsKICAgICAgICBzY2FuZigiJWQiLCAmY2hvaWNlKTsKCiAgICAgICAgaW50IHgsIHBvczsKICAgICAgICBzd2l0Y2ggKGNob2ljZSkgewogICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICBwcmludGYoIlZhbHVlIHlvdSB3YW50IHRvIHNlYXJjaDogIik7CiAgICAgICAgICAgICAgICBzY2FuZigiJWQiLCAmeCk7CiAgICAgICAgICAgICAgICBwb3MgPSBzZWFyY2goYXJyLCBuLCB4KTsKICAgICAgICAgICAgICAgIGlmIChwb3MgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJOb3QgZm91bmRcbiIpOwogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIHByaW50ZigiRm91bmQgYXQgcG9zaXRpb24gJWRcbiIsIHBvcyArIDEpOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgICBpZiAobiA+PSBNQXgpIHsKICAgICAgICAgICAgICAgICAgICBwcmludGYoIkFycmF5IGlzIGZ1bGwuXG4iKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHByaW50ZigiRW50ZXIgdmFsdWUgdG8gaW5zZXJ0IGF0IGZpcnN0OiAiKTsKICAgICAgICAgICAgICAgIHNjYW5mKCIlZCIsICZ4KTsKICAgICAgICAgICAgICAgIGluc2VydF9maXJzdChhcnIsIG4sIHgpOwogICAgICAgICAgICAgICAgbisrOwogICAgICAgICAgICAgICAgcHJpbnQoYXJyLCBuKTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgICAgaWYgKG4gPj0gTUF4KSB7CiAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJBcnJheSBpcyBmdWxsLlxuIik7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBwcmludGYoIkVudGVyIHBvc2l0aW9uICgwIHRvICVkKSBhbmQgdmFsdWU6ICIsIG4pOwogICAgICAgICAgICAgICAgc2NhbmYoIiVkICVkIiwgJnBvcywgJngpOwogICAgICAgICAgICAgICAgbiA9IGluc2VydF9hdF9wb3NpdGlvbihhcnIsIG4sIHBvcywgeCk7CiAgICAgICAgICAgICAgICBwcmludChhcnIsIG4pOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgICBuID0gZGVsZXRlX2xhc3Qobik7CiAgICAgICAgICAgICAgICBwcmludChhcnIsIG4pOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgICAgICBwcmludGYoIkVudGVyIHBvc2l0aW9uIHRvIGRlbGV0ZSAoMCB0byAlZCk6ICIsIG4gLSAxKTsKICAgICAgICAgICAgICAgIHNjYW5mKCIlZCIsICZwb3MpOwogICAgICAgICAgICAgICAgbiA9IGRlbGV0ZV9hdF9wb3NpdGlvbihhcnIsIG4sIHBvcyk7CiAgICAgICAgICAgICAgICBwcmludChhcnIsIG4pOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlIDY6CiAgICAgICAgICAgICAgICBwcmludChhcnIsIG4pOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICBwcmludGYoIkV4aXRpbmcgcHJvZ3JhbS5cbiIpOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgcHJpbnRmKCJJbnZhbGlkIGNob2ljZS4gVHJ5IGFnYWluLlxuIik7CiAgICAgICAgfQoKICAgIH0gd2hpbGUgKGNob2ljZSAhPSAwKTsKCiAgICByZXR1cm4gMDsKfQ==