Advertisement
Guest User

#4

a guest
May 25th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.53 KB | None | 0 0
  1. /*
  2.     Описание
  3.     1. нахождение произведения положительных элементов
  4.     будем хранить произведение в переменной pr
  5.     изначально pr = 0; по мере считывания элементов a[i] массива мы смотрим, является ли очередной элемент a[i] положительным
  6.     если да, то
  7.         1) если pr == 0, значит это первый положительный элемент который мы встретили; запишем его в ответ : pr = a[i]
  8.         2) если pr != 0, значит у нас уже есть произведение каких-то чисел; добавим новое число в ответ : pr *= a[i];
  9.     после считывания всех элементов мы получим в переменной pr произведение положительных чисел;
  10.    
  11.     2. нахождение суммы до минимального элемента
  12.     будем хранить индекс минимального элемента в переменной mi
  13.     изначально mi = 0; по мере считывания элементов a[i] массива мы сравниваем очередной элемент a[i] с минимальным элементом a[mi],
  14.     и если a[i] < a[mi], это значит, что на данном шаге a[i] является мин. элементом : mi = i;
  15.     после считывания всех элементов мы получим в переменной mi индекс мин. элемента;
  16.     останется только сложить все a[i] , 0 <= i < mi;
  17. */
  18.  
  19. /*
  20.     Трассировка
  21.     n = 5
  22.     a[] = {-1 9 0.3 -10 0.2}
  23.    
  24.     i   a[i]    if(a[i]>0.0)    if(pr == 0.0)   pr      if(a[i] < a[mi])    mi
  25.     ------------------------------------------------------------------
  26.     0   -1      0               -               0.0     0                   0
  27.     1   9       1               1               9       0                   0
  28.     2   0.3     1               0               2.7     0                   0
  29.     3   -10     0               -               2.7     1                   3
  30.     4   0.2     1               0               0.54    0                   3
  31.    
  32. */
  33.  
  34. #include <bits/stdc++.h>
  35.  
  36. using namespace std;
  37.  
  38. double a[10000];
  39. int main(){
  40.     int n;
  41.     cin >> n;
  42.     double pr = 0;
  43.     int mi = 0;
  44.     for(int i = 0; i < n; i ++){
  45.         cin >> a[i];
  46.         if(a[i] > 0.0){
  47.             if(pr == 0.0){
  48.                 pr = a[i];
  49.             }
  50.             else pr *= a[i];
  51.         }
  52.         if(a[i] < a[mi])mi = i;
  53.     }
  54.     double sum = 0;
  55.     for(int i = 0; i < mi; i ++){
  56.         sum += a[i];
  57.     }
  58.  
  59.     cout << "proizvrdenie " << pr << endl;
  60.     cout << "summma do min elementa " << sum;
  61.  
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement