Advertisement
Makakas

EZ 10

May 15th, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.70 KB | None | 0 0
  1.  
  2.  
  3. #include "stdio.h"
  4.  
  5. #include "conio.h"
  6.  
  7. #include "malloc.h"
  8.  
  9. #define N 20
  10.  
  11.  
  12. int razmer(int* ra, char sim)
  13.  
  14. {
  15.  
  16.     while (1)
  17.  
  18.     {
  19.  
  20.         printf("Введите размерность вектора %c=>", sim);
  21.  
  22.         scanf("%d", ra);
  23.  
  24.         if ((*ra > 0) && (*ra < 30)) break;
  25.  
  26.     }
  27.  
  28.     return(*ra);
  29.  
  30. }
  31.  
  32.  
  33.  
  34. void vvod_vektora(int* ra, float* pa, char sim)
  35.  
  36. {
  37.  
  38.     int i;
  39.  
  40.     for (i = 0; i < *ra; i++)
  41.  
  42.     {
  43.  
  44.         printf("%c[%d]=", sim, i);
  45.  
  46.         scanf("%f", pa + i);
  47.  
  48.     }
  49.  
  50. }
  51.  
  52.  
  53.  
  54. void vivod_vektora(int* ra, float* pa, char sim)
  55.  
  56. {
  57.     printf("Исходный вектор: ");
  58.     int i;
  59.  
  60.     for (i = 0; i < *ra; i++)
  61.  
  62.         printf("%3.0f ", *(pa + i));
  63.  
  64. }
  65.  
  66.  
  67.  
  68. float poisk(int* ra, float* pa, char sim)
  69. {
  70.     int i,k=0;
  71.     float min = *(pa + 0);
  72.     for (i = 0; i < *ra; i++)
  73.     {
  74.         if (*(pa + i) < min) min = *(pa + i);
  75.     }
  76.    
  77.     for (i = 0; i < *ra; i++)
  78.     {
  79.     if (*(pa + i) == min) k++;
  80.     }
  81.     printf("\n Минимум вектора %c = %1.0f", sim, min);
  82.     printf("\n Повторений: %d", k);
  83.     return(min);
  84. }
  85.  
  86.  
  87.  
  88. void main()
  89.  
  90. {
  91.  
  92.     while (1)
  93.  
  94.     {
  95.  
  96.         int r1, r2,min;
  97.  
  98.         float* a, mina, kmina;
  99.  
  100.         char otv;
  101.  
  102.         printf("Найти наиболее часто встречающийся малый элемент. Вывести кол-во повторений этого элемента.\n");
  103.  
  104.         r1 = razmer(&r1, 'a');
  105.  
  106.         a = (float*)malloc(r1 * sizeof(float));
  107.  
  108.         printf("Введите вектор a:\n");
  109.         vvod_vektora(&r1, &*a, 'a');
  110.         vivod_vektora(&r1, &*a, 'a');
  111.  
  112.         mina = poisk(&r1, &*a, 'a');
  113.  
  114.         printf("\n Продолжим работу (Y/N)?");
  115.  
  116.         scanf("%s", &otv);
  117.  
  118.         if ((otv == 'n') || (otv == 'N')) break;
  119.  
  120.         free(a);
  121.  
  122.     }
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement