| Код | #include <stdio.h> #include <math.h>
#define eps 1e-6 #define N 5
void ReadArray( int arr[], int n ); void WriteArray( int arr[], int n ); int CheckArray( int arr[], int n ); int IsFibNum( int n ); void InvertArray( int arr[], int n );
int main() { int arr[ N ];
printf( "Please enter an array[ %d ]:\n", N ); ReadArray( arr, N );
printf( "Source array:\n" ); WriteArray( arr, N );
if( CheckArray( arr, N ) ) InvertArray( arr, N );
printf( "Result array:\n" ); WriteArray( arr, N ); return 0; }
void ReadArray( int arr[], int n ) { int i; for( i = 0; i < n; i++ ) scanf( "%d", &arr[ i ] ); }
void WriteArray( int arr[], int n ) { int i;
if( n <= 0 ) return;
for( i = 0; i < n - 1; i++ ) printf( "%d, ", arr[ i ] ); printf( "%d\n", arr[ n - 1 ] ); }
int CheckArray( int arr[], int n ) { int i = 0; int cond = 0;
while( i < n && !( cond = IsFibNum( arr[ i ] ) ) ) i++; return cond; }
int IsFibNum( int n ) { double val1, val2;
val1 = sqrt( 5.0 * n * n + 4.0 ); val2 = sqrt( 5.0 * n * n - 4.0 );
return ( fabs( val1 - ( int ) val1 ) < eps || fabs( val2 - ( int ) val2 ) < eps ); }
void InvertArray( int arr[], int n ) { int i, temp;
for( i = 0; i < n / 2; i++ ) { temp = arr[ i ]; arr[ i ] = arr[ n - i - 1 ]; arr[ n - i - 1 ] = temp; } }
|
|