Advertisement
Bisus

Untitled

Oct 3rd, 2019
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.45 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int count_min(int *a, unsigned int n);
  4.  
  5. // Подсчет количества чисел, равных минимальному
  6. int count_min(int *a, unsigned int n)
  7. {
  8.     int min = 2147483647;
  9.     unsigned int i;
  10.     unsigned int count;// Счетчик минимальных
  11.  
  12.     for(i = 0; i<n; i++)
  13.     {
  14.         if(a[i]==min)
  15.         {
  16.             ++count;
  17.         } else
  18.             if(a[i]<min)
  19.             {
  20.                 min = a[i];
  21.                 count = 1;
  22.             }
  23.     }
  24.  
  25.     return count;
  26. }
  27.  
  28. int main(void)
  29. {
  30.     FILE *f;
  31.     int *a;// Это будет массив, когда выделю память
  32.     unsigned int n;// Размер массива
  33.     char fn[256];
  34.     unsigned int i;
  35.  
  36.     printf("Write file name: ");
  37.     if(scanf("%s", fn)<=0)
  38.     {
  39.         printf("Input from console error!\n");
  40.         return 1;
  41.     }
  42.  
  43.     f = fopen(fn, "r");
  44.     if(f==NULL)
  45.     {
  46.         printf("Open file error!\n");
  47.         return 2;
  48.     }
  49.  
  50.     if(fscanf(f, "%d", &n)<=0)// Первое считываемое число - кол-во элементов в массиве
  51.     {
  52.         printf("Input from file error!\n");
  53.         return 3;
  54.     }
  55.  
  56.     if(n==0)
  57.     {
  58.         printf("Result: no elements!\n");
  59.         return 0;
  60.     }
  61.     a = (int*)malloc(n*sizeof(int));
  62.     for(i = 0; i<n; i++)
  63.     {
  64.         if(fscanf(f, "%d", &a[i])<=0)
  65.         {
  66.             printf("Input from file error!\n");
  67.             free(a);
  68.             return 3;
  69.         }
  70.     }
  71.  
  72.     // Массив считан. Поздравляю! Но это не конец...
  73.  
  74.     printf("Result: %d\n", count_min(a, n));
  75.  
  76.     free(a);
  77.     return 0;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement