fork download
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. const int N = 5;
  5. double a[ N ][ N ];
  6. double b[ N ][ N ];
  7.  
  8. void fill_a() {
  9. for ( int i = 0; i < N; i++ ) {
  10. for ( int j = 0; j < N; j++ ) {
  11. a[ i ][ j ] = sin( ( i + 1 ) + 2 * ( j + 1 ) );
  12. }
  13. }
  14. }
  15.  
  16. void smooth() {
  17. for ( int i = 1; i < N - 1; i++ ) {
  18. for ( int j = 1; j < N - 1; j++ ) {
  19. b[ i ][ j ] = 0;
  20. for ( int ii = i - 1; ii < i + 1; ii++ ) {
  21. for ( int jj = j - 1; jj < j + 1; jj++ ) {
  22. b[ i ][ j ] += a[ ii ][ jj ];
  23. }
  24. }
  25. b[ i ][ j ] /= 9;
  26. }
  27. }
  28. for ( int i = 0; i < N; i++ ) {
  29. b[ i ][ 0 ] = a[ i ][ 0 ];
  30. b[ i ][ N - 1 ] = a[ i ][ N - 1 ];
  31. b[ 0 ][ i ] = a[ 0 ][ i ];
  32. b[ N - 1 ][ i ] = a[ N - 1 ][ i ];
  33. }
  34. }
  35.  
  36. int max_element_column() {
  37. double max_elem = -2.0;
  38. int max_column = 0;
  39. for ( int i = 0; i < N; i++ ) {
  40. for ( int j = 0; j < N; j++ ) {
  41. if ( b[ i ][ j ] > max_elem ) {
  42. max_elem = b[ i ][ j ];
  43. max_column = j;
  44. }
  45. }
  46. }
  47. return max_column;
  48. }
  49.  
  50. double count_g( int column ) {
  51. double g = 1.0;
  52. for ( int i = 0; i < N - 1; i++ ) {
  53. g *= b[ i ][ column ] * b[ i + 1 ][ column ];
  54. }
  55. return g;
  56. }
  57.  
  58. void print_matrix( double (&m)[ N ][ N ] ) {
  59. for ( int i = 0; i < N; i++ ) {
  60. for ( int j = 0; j < N; j++ ) {
  61. printf( "%.2f ", m[ i ][ j ] );
  62. }
  63. printf( "\n" );
  64. }
  65. }
  66.  
  67. void print_x( int column ) {
  68. for ( int i = 0; i < N; i++ ) {
  69. printf( "%.2f ", b[ i ][ column ] );
  70. }
  71. printf( "\n" );
  72. }
  73.  
  74. int main() {
  75. fill_a();
  76. smooth();
  77. int max_column = max_element_column();
  78. double u = count_g( max_column );
  79. printf( "A:\n" );
  80. print_matrix( a );
  81. printf( "-----------\n" );
  82. printf( "B:\n" );
  83. print_matrix( b );
  84. printf( "-----------\n" );
  85. printf( "x = " );
  86. print_x( max_column );
  87. printf( "u = %f\n", u );
  88. return 0;
  89. }
Success #stdin #stdout 0s 3296KB
stdin
Standard input is empty
stdout
A:
0.14 -0.96 0.66 0.41 -1.00 
-0.76 -0.28 0.99 -0.54 -0.54 
-0.96 0.66 0.41 -1.00 0.42 
-0.28 0.99 -0.54 -0.54 0.99 
0.66 0.41 -1.00 0.42 0.65 
-----------
B:
0.14 -0.96 0.66 0.41 -1.00 
-0.76 -0.21 0.05 0.17 -0.54 
-0.96 -0.15 0.20 -0.02 0.42 
-0.28 0.05 0.17 -0.19 0.99 
0.66 0.41 -1.00 0.42 0.65 
-----------
x = -1.00 -0.54 0.42 0.99 0.65 
u = -0.032434