Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdint.h>
- static const int treshold = 20;
- typedef struct _pack
- {
- int_least32_t values[4000];
- int_least16_t indexes[4000];
- int_least16_t size;
- } pack;
- static pack input, output;
- static void sort(pack* input)
- {
- int_least16_t i;
- int_least16_t j;
- for (i = 0; i < (input->size - 1); i++)
- {
- for (j = i + 1; j < input->size; j++)
- {
- if (input->values[i] < input->values[j])
- {
- int_least32_t tmp;
- int_least16_t tmp1;
- tmp = input->values[i];
- input->values[i] = input->values[j];
- input->values[j] = tmp;
- tmp1 = input->indexes[i];
- input->indexes[i] = input->indexes[j];
- input->indexes[j] = tmp1;
- }
- }
- }
- }
- static void print(pack* input, pack* output)
- {
- int_least16_t i = 0;
- printf("Up to the first treshold: ");
- while (input->values[i] > treshold && i < input->size)
- {
- printf("%d(%d) ", input->values[i], input->indexes[i]);
- i++;
- }
- printf("\n");
- output->size = 0;
- for(i = 0; i < input->size; i++)
- {
- if(input->values[i] < treshold && input->values[i] % 2 == 0)
- {
- output->values[output->size] = input->values[i];
- output->indexes[output->size] = input->indexes[i];
- output->size++;
- }
- }
- }
- void main()
- {
- int_least16_t i;
- int_least16_t n;
- printf("Number of elements: ");
- scanf("%d", &(input.size));
- printf("\n");
- for (i = 0; i < input.size; i++)
- {
- printf("%d. element: ", i);
- scanf("%d", &(input.values[i]));
- input.indexes[i] = i;
- printf("\n");
- }
- sort(&input);
- print(&input, &output);
- printf("Even numbers smaller than treshold:\n");
- for(i = 0; i < output.size; i++)
- printf("%d(%d) ", output.values[i], output.indexes[i]);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement