Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #define N 100
- void do_command(int *array, int count, int command);
- int abs_max(int *a, int i) {
- int max = 0;
- for (int j = 0; j < i; j++) {
- if (abs(a[j]) > abs(max)) {
- max = a[j];
- }
- }
- return max;
- }
- int abs_min(int *a, int i) {
- int min = abs(abs_max(a, i));
- for (int j = 0; j < i; j++) {
- if (abs(a[j]) < abs(min))
- min = a[j];
- }
- return min;
- }
- int diff(int *a, int i) {
- return (abs_max(a, i) - abs_min(a, i));
- }
- int sum(int *a, int i) {
- int max_index = 0, max = abs_max(a, i);
- int s = 0;
- for (int j = 0; j < i; j++) {
- if (a[j] == max) {
- max_index = j;
- break;
- }
- }
- for (int j = max_index; j < i; j++) {
- s += a[j];
- }
- return s;
- }
- int main() {
- int array[N] = {};
- int count = 0;
- int command;
- char c;
- scanf("%d", &command);
- while (count < N) {
- scanf("%d%c", &array[count++], &c);
- if (c == '\n')
- break;
- }
- do_command(array, count, command);
- return 0;
- }
- void do_command(int *array, int count, int command) {
- switch (command) {
- case 0:
- printf("%d\n", abs_max(array, count));
- break;
- case 1:
- printf("%d\n", abs_min(array, count));
- break;
- case 2:
- printf("%d\n", diff(array, count));
- break;
- case 3:
- printf("%d\n", sum(array, count));
- break;
- default:
- printf("Данные некорректны\n");
- break;
- }
- }
Add Comment
Please, Sign In to add comment