Guest User

Untitled

a guest
Jan 23rd, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.07 KB | None | 0 0
  1.  
  2.  
  3.  
  4.  
  5. #include"stdafx.h"
  6. #include<conio.h>
  7. #include<stdio.h>
  8. #include<math.h>
  9.  
  10. float * * transphorm(float * * Ap, float * A, int n, int M);
  11. float * * inputmas( float * * A, int * pn, int * pm, int nmax, int mmax );
  12. int max ( float * * A, int n, int m);
  13. void retmas ( float * * A, int n, int m);
  14. void swap (float * a, float * b );
  15. void del (float * * A, int b, int n, int m);
  16. void bigsort(float * * B, int n, int m, float * A);
  17. float * massmiddle ( float * * A, int n, int m );
  18. float middle ( float * A , int n );
  19.  
  20. void main()
  21. {
  22. const int nmax = 100;
  23. const int mmax = 100;
  24. float Ap[nmax][mmax];
  25. float * A[mmax];
  26. transphorm( A , *Ap, nmax, mmax );
  27.  
  28. int n;
  29. int m;
  30. int * pn = &n;
  31. int * pm = &m;
  32.  
  33.  
  34. A = inputmas( A, pn, pm, nmax, mmax );
  35. if (A != 0)
  36. {
  37. int q = max(A,n,m);
  38. del(A,q,n,m);
  39. m=m-1;
  40. float * G = massmiddle(A, n, m);
  41. bigsort (A, n, m, G);
  42. retmas(A, n, m);
  43.  
  44. }
  45. getch();
  46. }
  47.  
  48. float * * inputmas ( float * * A, int * pn, int * pm, int nmax, int mmax )
  49. {
  50. printf ( "Input count " );
  51. scanf ( "%d %d", pn, pm );
  52. if (*pn > nmax||*pn < 1||*pm < 1||*pm > mmax)
  53. {
  54. return 0;
  55. }
  56.  
  57. printf ( "Input elements: " );
  58. for ( int i = 0; i < *pn ; i++ )
  59. {
  60. for ( int j = 0; j < *pn ; j++ )
  61. scanf( "%f", A[i]+j );
  62. }
  63.  
  64. return A;
  65. }
  66. float * * transphorm(float * * Ap, float * A, int n, int M)
  67. {
  68. for ( int i=0; i<n; i++ )
  69. {
  70. Ap[i]=A+i*M;
  71. }
  72. return Ap;
  73. }
  74. int max ( float * * A, int n, int m)
  75. {
  76. float k ;
  77. k = A[0][0];
  78. int kd = 0;
  79. for ( int i = 0; i < n; i++ )
  80. {
  81. for ( int j = 0; j < m; j++ )
  82. {
  83. if ( k < A[i][j] )
  84. {
  85. k = A[i][j];
  86. kd = j;
  87. }
  88. }
  89. }
  90. return kd;
  91. }
  92.  
  93. void sort ( float * A , int n)
  94. {
  95. int j = 0;
  96. int flag = 0;
  97. do
  98. {
  99. j++;
  100. flag = 0;
  101. for ( int i = 0; i < n -j; i++ )
  102. {
  103. if (A[i]>A[i+1])
  104. {
  105. swap(&A[i],&A[i+1]);
  106. flag = 1;
  107. }
  108. }
  109. }
  110. while (flag == 1);
  111.  
  112.  
  113. }
  114.  
  115. void swap (float * a,float * b)
  116.  
  117. {
  118. float temp = *a;
  119. *a = *b;
  120. *b = temp;
  121. }
  122.  
  123. void retmas ( float * * A, int n, int m)
  124. {
  125. printf ( "Printing: \n " );
  126. for ( int i = 0; i < n; i++ )
  127. {
  128. for ( int j = 0; j < m; j++ )
  129. {
  130. printf( "%f ", A[i]+j );
  131. }
  132. printf ( "\n" );
  133. }
  134.  
  135. }
  136.  
  137. void del (float * * A, int b, int n, int m)
  138. {
  139. for ( int i = 0; i < n; i++ )
  140. {
  141. for ( int j = 0; j < m; j++ )
  142. {
  143. if(i>b) swap(A[i]+j, A[i]+j-1);
  144. }
  145.  
  146. }
  147. }
  148.  
  149. float * massmiddle ( float * * A, int n, int m )
  150. {
  151. float *G;
  152. for ( int i = 0; i < n; i++ )
  153. {
  154. G[m]=middle(A[i],m);
  155. }
  156. return G;
  157. }
  158. void bigsort(float * * B, int n, int m, float * A)
  159. {
  160. int k;
  161. int j = 0;
  162. int flag = 0;
  163. do
  164. {
  165. j++;
  166. flag = 0;
  167. for ( int i = 0; i < n -j; i++ )
  168. {
  169. if (A[i]>A[i+1])
  170. {
  171. swap(&A[i],&A[i+1]);
  172. flag = 1;
  173. for( k=0; k<m; k++ )
  174. {
  175. swap(B[i]+k,B[i+1]+k);
  176. }
  177. }
  178. }
  179. }
  180. while (flag == 1);
  181.  
  182. }
  183.  
  184. float middle ( float * A , int n )
  185. {
  186. float a = 0;
  187. int c = 0;
  188. for ( int i = 0; i < n; i++ )
  189. {
  190. if (A[i]>0)
  191. {
  192. a += A[i];
  193. c++;
  194. };
  195. }
  196. float s;
  197. if (c != 0)
  198. {
  199. s = a/c;
  200. }
  201.  
  202.  
  203. return s;
  204. }
Add Comment
Please, Sign In to add comment