Advertisement
meta1211

Идивидуалки

Nov 9th, 2017
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.47 KB | None | 0 0
  1. //Массивы
  2. /* 58) Даны два строго упорядоченных по возрастанию массива X и Y из n элементов каждый. В массиве X найти все такие элементы X[k], для которых найдутся некоторые элементы из массива Y, удовлетворяющие соотношению: Y[i] < X[k] < Y[i + 1]. Вычислить количество m таких элементов из X и переписать их в первые m элементов массива C. */
  3. #define _CRT_SECURE_NO_WARNINGS
  4.  
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <conio.h>
  8. #include <ctime>
  9. int find_num(int a[], int b[], int c[], int n)
  10. {
  11. int k = 0;
  12. int count = 0;
  13. if ((b[0] > a[n - 1]) || (b[n - 1] < a[0]))
  14. return 0;
  15. for (int j = 0; j < n; j++)
  16. {
  17. for (int i = k; i < n - 1; i++)
  18. {
  19. if (a[j] > b[i])
  20. if (a[j] < b[i + 1])
  21. {
  22. c[count++] = a[j];
  23. k = i;
  24. break;
  25. }
  26. }
  27. }
  28. return count;
  29. }
  30.  
  31. void fill_array(int a[], int n)
  32. {
  33. for (int k = 0; k < n; k++)
  34. a[k] = (rand() % 100) + 1;
  35. }
  36.  
  37. void print_array(int a[], int n)
  38. {
  39. for (unsigned int j = 0; j < n; j++)
  40. {
  41. printf("%d\t", a[j]);
  42. }
  43. printf("\n");
  44. }
  45.  
  46. int main()
  47. {
  48. int n;
  49.  
  50.  
  51. printf("input array length:\n");
  52. scanf("%d", &n);
  53.  
  54.  
  55. int *a = new int[n];
  56. int *b = new int[n];
  57. int *c = new int[n];
  58. fill_array(a, n);
  59. fill_array(b, n);
  60.  
  61.  
  62. int x = find_num(a, b, c, n);
  63. printf("two arrays:\n");
  64. print_array(a, n);
  65. print_array(b, n);
  66. printf("result:");
  67. print_array(c, x);
  68.  
  69.  
  70. system("pause");
  71. return 0;
  72. }
  73.  
  74.  
  75. //Матрицы
  76. //19. По заданным коэффициентам и правым частям найти решение "треугольной" системы из n уравнений.
  77.  
  78. #define _CRT_SECURE_NO_WARNINGS
  79.  
  80. #include <stdio.h>
  81. #include <stdlib.h>
  82. #include <conio.h>
  83. #include <ctime>
  84.  
  85. double** create_array(int string, int column)
  86. {
  87. double **a = new double*[string];
  88. for (unsigned int i = 0; i < string; i++)
  89. {
  90. a[i] = new double[column];
  91. }
  92. return a;
  93. }
  94.  
  95. void delete_array(double **a, int string)
  96. {
  97. for (int j = 0; j < string; j++)
  98. delete[]a[j];
  99. }
  100.  
  101. void print_array(double **a, int string, int column)
  102. {
  103. for (unsigned int k = 0; k < string; k++)
  104. {
  105. printf("\n");
  106. for (unsigned int j = 0; j < column; j++)
  107. {
  108. printf("%f\t", a[k][j]);
  109. }
  110. }
  111. printf("\n");
  112. }
  113. void fill_array(double **a, int string, int column)
  114. {
  115. for (unsigned int k = 0; k < string; k++)
  116. for (unsigned int j = 0; j < column; j++)
  117. {
  118. if (j == column - 1 || j <= k)
  119. a[k][j] = rand() % 10 + 1;
  120. else
  121. a[k][j] = 0;
  122. }
  123. }
  124. double **find_solution(double **a, int string, int column)
  125. {
  126. double **arr = create_array(string, 1);
  127. for (int i = 0; i < string; i++)
  128. {
  129. arr[i][0] = 0;
  130. }
  131. arr[0][0] = a[0][column - 1] / a[0][0];
  132. for (int i = 1; i < string; i++)
  133. {
  134. arr[i][0] = a[i][0];
  135. for (int j = 0; j < i; j++)
  136. {
  137. arr[i][0] -= a[i][j] * arr[j][0];
  138. }
  139. arr[i][0] /= a[i][i];
  140. }
  141. return arr;
  142. }
  143.  
  144.  
  145. int main()
  146. {
  147. int string;
  148. int column;
  149.  
  150.  
  151. printf("put the number of unknowns, please:\n");
  152. scanf("%d", &string);
  153. column = string + 1;
  154. double **a = create_array(string, column);
  155. fill_array(a, string, column);
  156. printf("Matrix:");
  157. print_array(a, string, column);
  158. double **b = find_solution(a, string, column);
  159. printf("Solution:");
  160. print_array(b, string, 1);
  161.  
  162.  
  163. delete_array(a, string);
  164. delete_array(b, string);
  165. system("pause");
  166. return 0;
  167. }
  168.  
  169.  
  170. //указатели
  171. //52) Выяснить, каких элементов в массиве A больше : отрицательных, положительных или нулей.
  172.  
  173. #define _CRT_SECURE_NO_WARNINGS
  174.  
  175. #include <stdio.h>
  176. #include <stdlib.h>
  177. #include <conio.h>
  178.  
  179. int** create_array(int w, int h)
  180. {
  181. int **a = new int*[w];
  182. for (unsigned int i = 0; i < w; i++)
  183. {
  184. a[i] = new int[h];
  185. }
  186. return a;
  187. }
  188.  
  189. void delete_array(int **a, int w)
  190. {
  191. for (int j = 0; j < w; j++)
  192. delete[]a[j];
  193. }
  194.  
  195. void print_array(int **a, int w, int h)
  196. {
  197. for (unsigned int k = 0; k < w; k++)
  198. {
  199. printf("\n");
  200. for (unsigned int j = 0; j < h; j++)
  201. {
  202. printf("%d\t", a[k][j]);
  203. }
  204. }
  205. }
  206.  
  207. void fill_array(int **a, int w, int h)
  208. {
  209. for (unsigned int k = 0; k < w; k++)
  210. for (unsigned int j = 0; j < h; j++)
  211. {
  212. a[k][j] = (rand() % 40) - 21;
  213. }
  214. }
  215. /*
  216. Находим каких знаков в массиве больше:
  217. 1) Если больше положительных возвращает 1
  218. 2) Если больше отрицательных возвращает -1
  219. 3) Иначе ноль
  220. */
  221. int check_signs(int **a, int n, int m)
  222. {
  223. int pos = 0, nul = 0, neg = 0;
  224. for (int i = 0; i < n; i++)
  225. for (int j = 0; j < m; j++)
  226. {
  227. if (a[i][j] > 0)
  228. pos++;
  229. else if (!(a[i][j]))
  230. nul++;
  231. else neg++;
  232. }
  233. if (pos >= neg && pos > nul)
  234. return 1;
  235. else if (neg > pos && neg >= nul)
  236. return -1;
  237. else return 0;
  238. }
  239.  
  240. int main()
  241. {
  242. int n,
  243. m;
  244.  
  245. printf("Input arrat height and width:\n");
  246. scanf("%d \n%d", &n, &m);
  247. int **a = create_array(n, m);
  248. fill_array(a, n, m);
  249. print_array(a, n, m);
  250.  
  251. if(check_signs(a, n, m) == 1)
  252. printf("\nThere is more positive numbers!\n");
  253. if (!(check_signs(a, n, m)))
  254. printf("\nThere is more nulls!\n");
  255. if (check_signs(a, n, m) == -1)
  256. printf("\nThere is more negative numbers!\n");
  257.  
  258. delete_array(a, n);
  259. system("pause");
  260. return 0;
  261. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement