Purposelessness

Лабораторная работа №1.5

Sep 22nd, 2021 (edited)
329
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.68 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define N 100
  5.  
  6. void do_command(int *array, int count, int command);
  7.  
  8. int abs_max(int *a, int i) {
  9.     int max = 0;
  10.     for (int j = 0; j < i; j++) {
  11.         if (abs(a[j]) > abs(max)) {
  12.             max = a[j];
  13.         }
  14.     }
  15.     return max;
  16. }
  17.  
  18. int abs_min(int *a, int i) {
  19.     int min = abs(abs_max(a, i));
  20.     for (int j = 0; j < i; j++) {
  21.         if (abs(a[j]) < abs(min))
  22.             min = a[j];
  23.     }
  24.     return min;
  25. }
  26.  
  27. int diff(int *a, int i) {
  28.     return (abs_max(a, i) - abs_min(a, i));
  29. }
  30.  
  31. int sum(int *a, int i) {
  32.     int max_index = 0, max = abs_max(a, i);
  33.     int s = 0;
  34.     for (int j = 0; j < i; j++) {
  35.         if (a[j] == max) {
  36.             max_index = j;
  37.             break;
  38.         }
  39.     }
  40.     for (int j = max_index; j < i; j++) {
  41.         s += a[j];
  42.     }
  43.     return s;
  44. }
  45.  
  46. int main() {
  47.     int array[N] = {};
  48.     int count = 0;
  49.     int command;
  50.     char c;
  51.  
  52.  
  53.     scanf("%d", &command);
  54.     while (count < N) {
  55.         scanf("%d%c", &array[count++], &c);
  56.         if (c == '\n')
  57.             break;
  58.     }
  59.  
  60.     do_command(array, count, command);
  61.  
  62.     return 0;
  63. }
  64.  
  65. void do_command(int *array, int count, int command) {
  66.     switch (command) {
  67.         case 0:
  68.             printf("%d\n", abs_max(array, count));
  69.             break;
  70.         case 1:
  71.             printf("%d\n", abs_min(array, count));
  72.             break;
  73.         case 2:
  74.             printf("%d\n", diff(array, count));
  75.             break;
  76.         case 3:
  77.             printf("%d\n", sum(array, count));
  78.             break;
  79.         default:
  80.             printf("Данные некорректны\n");
  81.             break;
  82.     }
  83. }
  84.  
Add Comment
Please, Sign In to add comment