fork download
  1. #include "stdio.h"
  2. #include "stdlib.h"
  3. //#include "time.h"
  4.  
  5. // マクロ定数
  6. #define MAX_ROW 9
  7. #define MAX_COL 9
  8.  
  9.  
  10. // 関数のプロトタイプ宣言
  11. void Init( int [][MAX_COL]);
  12. void Draw( int [][MAX_COL] );
  13. int GetMaxValue_of_Row( int, int [][MAX_COL] );
  14. int GetMaxValue_of_Col( int, int [][MAX_COL] );
  15. int GetMinValue_of_Row( int, int [][MAX_COL] );
  16. int GetMinValue_of_Col( int, int [][MAX_COL] );
  17. double GetAverageValue_of_Row( int, int [][MAX_COL] );
  18. double GetAverageValue_of_Col( int, int [][MAX_COL] );
  19.  
  20.  
  21. // メイン
  22. int main()
  23. {
  24. int data1[MAX_ROW][MAX_COL];
  25.  
  26. // srand((unsigned)time(NULL));
  27. Init( data1 );
  28. Draw( data1 );
  29.  
  30. return 0;
  31. }
  32.  
  33.  
  34. void Init( int dat[][MAX_COL] )
  35. {
  36. int i, j;
  37.  
  38. for( i = 0; i < MAX_ROW; i++ ){
  39. for( j = 0; j < MAX_COL; j++ ){
  40. dat[i][j] = rand() % 100;
  41. }
  42. }
  43. }
  44.  
  45.  
  46. void Draw( int dat[][MAX_COL] )
  47. {
  48. int i, j;
  49.  
  50. // 力技フォーマット…正直どうにかしたい…
  51. printf("data ");
  52. for( i = 0; i < MAX_COL; i++ ) printf(" ");
  53. printf("max min ave\n");
  54.  
  55. // 横計算出力
  56. for( i = 0; i < MAX_ROW; i++ ){
  57. printf( " " );
  58. for( j = 0; j < MAX_COL; j++ ){
  59. printf( "%5d", dat[i][j] );
  60. }
  61.  
  62. printf( "%5d", GetMaxValue_of_Col( i, dat ) );
  63. printf( "%5d", GetMinValue_of_Col( i, dat ) );
  64. printf( "%5.1f", GetAverageValue_of_Col( i, dat ) );
  65. printf( "\n" );
  66. }
  67.  
  68. // 縦計算出力
  69. printf( "max" );
  70. for( i = 0; i < MAX_COL; i++ ) printf( "%5d", GetMaxValue_of_Row( i, dat ) );
  71. printf( "\n" );
  72.  
  73. printf( "min" );
  74. for( i = 0; i < MAX_COL; i++ ) printf( "%5d", GetMinValue_of_Row( i, dat ) );
  75. printf( "\n" );
  76.  
  77. printf( "ave " );
  78. for( i = 0; i < MAX_COL; i++ ) printf( "%5.1f", GetAverageValue_of_Row( i, dat ) );
  79. printf( "\n" );
  80. }
  81.  
  82.  
  83. int GetMaxValue_of_Row( int row, int dat[][MAX_COL] )
  84. {
  85. int i;
  86. int max = 0;
  87.  
  88. for ( i = 0; i < MAX_ROW; i++ ){
  89. if ( dat[i][row] > max ){
  90. max = dat[i][row];
  91. }
  92. }
  93. return max;
  94. }
  95.  
  96.  
  97. int GetMaxValue_of_Col( int col, int dat[][MAX_COL] )
  98. {
  99. int i;
  100. int max = 0;
  101.  
  102. for ( i = 0; i < MAX_COL; i++ ){
  103. if( dat[col][i] > max ){
  104. max = dat[col][i];
  105. }
  106. }
  107. return max;
  108. }
  109.  
  110.  
  111. int GetMinValue_of_Row( int row, int dat[][MAX_COL] )
  112. {
  113. int i;
  114. int min = 99;
  115.  
  116. for ( i = 0; i < MAX_ROW; i++ ){
  117. if ( dat[i][row] < min ){
  118. min = dat[i][row];
  119. }
  120. }
  121. return min;
  122. }
  123.  
  124.  
  125. int GetMinValue_of_Col( int col, int dat[][MAX_COL] )
  126. {
  127. int i;
  128. int min = 99;
  129.  
  130. for ( i = 0; i < MAX_COL; i++ ){
  131. if ( dat[col][i] < min ){
  132. min = dat[col][i];
  133. }
  134. }
  135. return min;
  136. }
  137.  
  138.  
  139. double GetAverageValue_of_Row( int row, int dat[][MAX_COL] )
  140. {
  141. int i;
  142. int sum = 0;
  143.  
  144. for( i = 0; i < MAX_ROW; i++ ){
  145. sum += dat[i][row];
  146. }
  147.  
  148. return (double)sum/MAX_ROW;
  149. }
  150.  
  151.  
  152. double GetAverageValue_of_Col( int col, int dat[][MAX_COL] )
  153. {
  154. int i;
  155. int sum = 0;
  156.  
  157. for( i = 0; i < MAX_COL; i++ ){
  158. sum += dat[col][i];
  159. }
  160.  
  161. return (double)sum/MAX_COL;
  162. }
Success #stdin #stdout 0s 2292KB
stdin
Standard input is empty
stdout
data                                              max  min  ave
      83   86   77   15   93   35   86   92   49   93   15 68.4
      21   62   27   90   59   63   26   40   26   90   21 46.0
      72   36   11   68   67   29   82   30   62   82   11 50.8
      23   67   35   29    2   22   58   69   67   69    2 41.3
      93   56   11   42   29   73   21   19   84   93   11 47.6
      37   98   24   15   70   13   26   91   80   98   13 50.4
      56   73   62   70   96   81    5   25   84   96    5 61.3
      27   36    5   46   29   13   57   24   95   95    5 36.9
      82   45   14   67   34   64   43   50   87   87   14 54.0
max   93   98   77   90   96   81   86   92   95
min   21   36    5   15    2   13    5   19   26
ave  54.9 62.1 29.6 49.1 53.2 43.7 44.9 48.9 70.4