Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int finding(const int *in, int MIN, size_t *COUNT, size_t size_in) {
- size_t i = 0;
- int min = 0;
- size_t count = 0;
- while (in[i] <= MIN) {
- if (in[i] == MIN) {
- count++;
- }
- if (count > *COUNT) {
- return in[i];
- }
- i++;
- }
- min = in[i];
- for (; i < size_in; i++) {
- if (in[i] == MIN) {
- count++;
- }
- if (count > *COUNT) {
- return in[i];
- }
- if (in[i] < min && in[i] > MIN) {
- min = in[i];
- }
- }
- return min;
- }
- int *lowest_element(const int *in, size_t size_in, size_t size_out) {
- size_t i = 0;
- int *out = (int *) malloc(sizeof(int) * size_out);
- size_t count = 1;
- out[0] = in[i];
- for (; i < size_in; i++) {
- if (in[i] < out[0]) {
- out[0] = in[i];
- }
- }
- for (i = 1; i < size_out; i++) {
- out[i] = finding(in, out[i - 1], &count, size_in);
- (out[i] != out[i - 1]) ? count = 1 : count++;
- }
- return out;
- }
- int main() {
- int in[10] = {3, 3, 3, 4, 2, 3, 8, 3, 2, 3};
- int *out = lowest_element(in, 10, 7);
- size_t i;
- for (i = 0; i < 7; i++)
- printf("%d ", out[i]);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement