fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. #define N1 10
  6. #define N2 10
  7. #define RANGE 20.0 // Диапазон случайных чисел (от 0 до RANGE)
  8.  
  9. // Функция проверки наличия элемента в массиве
  10. int is_in_array(float arr[], int size, float value) {
  11. for (int i = 0; i < size; i++) {
  12. if (arr[i] == value) {
  13. return 1;
  14. }
  15. }
  16. return 0;
  17. }
  18.  
  19. int main() {
  20. float M1[N1], M2[N2], M3[N1 < N2 ? N1 : N2]; // M3 максимум размером min(N1, N2)
  21. int i, j, count = 0;
  22.  
  23. srand(time(NULL));
  24.  
  25. // Заполняем массивы случайными вещественными числами
  26. printf("M1: ");
  27. for (i = 0; i < N1; i++) {
  28. M1[i] = ((float)rand() / RAND_MAX) * RANGE;
  29. printf("%.2f ", M1[i]);
  30. }
  31.  
  32. printf("\nM2: ");
  33. for (i = 0; i < N2; i++) {
  34. M2[i] = ((float)rand() / RAND_MAX) * RANGE;
  35. printf("%.2f ", M2[i]);
  36. }
  37.  
  38. printf("\n\nПересечение массивов (без повторов):\n");
  39.  
  40. // Находим пересечение массивов
  41. for (i = 0; i < N1; i++) {
  42. if (is_in_array(M2, N2, M1[i]) && !is_in_array(M3, count, M1[i])) {
  43. M3[count++] = M1[i];
  44. }
  45. }
  46.  
  47. // Выводим результат
  48. for (i = 0; i < count; i++) {
  49. printf("%.2f ", M3[i]);
  50. }
  51.  
  52. printf("\n");
  53. return 0;
  54. }
  55.  
Success #stdin #stdout 0.01s 5288KB
stdin
1
2
10
42
11
stdout
M1: 4.01 19.13 15.46 19.88 3.36 15.12 4.08 3.13 10.95 2.22 
M2: 5.32 18.70 13.30 16.99 4.46 3.51 13.27 2.76 18.13 11.25 

Пересечение массивов (без повторов):