Advertisement
Guest User

Untitled

a guest
Feb 26th, 2017
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.29 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int finding(const int *in, int MIN, size_t *COUNT, size_t size_in) {
  5.     size_t i = 0;
  6.     int min = 0;
  7.     size_t count = 0;
  8.     while (in[i] <= MIN) {
  9.         if (in[i] == MIN) {
  10.             count++;
  11.         }
  12.         if (count > *COUNT) {
  13.             return in[i];
  14.         }
  15.         i++;
  16.     }
  17.     min = in[i];
  18.     for (; i < size_in; i++) {
  19.         if (in[i] == MIN) {
  20.             count++;
  21.         }
  22.         if (count > *COUNT) {
  23.             return in[i];
  24.         }
  25.         if (in[i] < min && in[i] > MIN) {
  26.             min = in[i];
  27.         }
  28.     }
  29.     return min;
  30. }
  31.  
  32. int *lowest_element(const int *in, size_t size_in, size_t size_out) {
  33.     size_t i = 0;
  34.     int *out = (int *) malloc(sizeof(int) * size_out);
  35.     size_t count = 1;
  36.     out[0] = in[i];
  37.     for (; i < size_in; i++) {
  38.         if (in[i] < out[0]) {
  39.             out[0] = in[i];
  40.         }
  41.     }
  42.     for (i = 1; i < size_out; i++) {
  43.         out[i] = finding(in, out[i - 1], &count, size_in);
  44.         (out[i] != out[i - 1]) ? count = 1 : count++;
  45.     }
  46.     return out;
  47. }
  48.  
  49. int main() {
  50.     int in[10] = {3, 3, 3, 4, 2, 3, 8, 3, 2, 3};
  51.     int *out = lowest_element(in, 10, 7);
  52.     size_t i;
  53.     for (i = 0; i < 7; i++)
  54.         printf("%d ", out[i]);
  55.     return 0;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement