enkov

Функции с параметър едномерен масив, вар. 2

Oct 30th, 2019
328
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.81 KB | None | 0 0
  1. #include "stdafx.h"  // само при Visual Studio <= 2017
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. /*Да се напишат дефинициите на следните функции:
  6. а) за намиране на броя на максималните елементи в масив от реални числа;
  7. б) за намиране на индекса на последния отрицателен елемент в масив от реални числа; Функцията трябва да връща -1, когато няма нито един отрицателен елемент.
  8. в) за намаляване два пъти на всички максимални елементи на масив от реални числа;
  9. Функциите от точки а), б) и в) трябва да могат да работят с масиви с различни дължини.*/
  10.  
  11. // а) за намиране на броя на максималните елементи в масив от реални числа;
  12. int CountOfMaxRealArray(double anArray[], const int size)
  13. {
  14.     int count = 0;
  15.     // търсим макс. елемент
  16.     double max = anArray[0];
  17.     for (int i = 1; i < size; i++)
  18.         if (anArray[i] > max)
  19.             max = anArray[i];
  20.     // намерен е max, нека ги преброим
  21.     for (int i = 0; i < size; i++)
  22.         if (anArray[i] == max)
  23.             count++;
  24.     return count;
  25. }
  26.  
  27. // б) за намиране на индекса на последния отрицателен елемент в масив от реални числа;
  28. // Функцията трябва да връща - 1, когато няма нито един отрицателен елемент
  29. int  IndexOfLastNegative(double anArray[], const int size)
  30. {
  31.     int i = size - 1;
  32.     while (i >= 0 && anArray[i] >= 0)
  33.         i--;
  34.     return i;
  35.  
  36.     /*
  37.     // variant 2
  38.     int idx = -1;
  39.     for (int i = 0; i < size; i++)
  40.         if (anArray[i] < 0)
  41.             idx = i;
  42.     return idx;
  43.  
  44.     // variant 3
  45.     int idx = -1;
  46.     for (int i = size - 1; i >= 0; i--)
  47.         if (anArray[i] < 0)
  48.         {
  49.             idx = i;
  50.             break;
  51.         }
  52.     return idx;
  53.     */
  54. }
  55.  
  56. // в) за намаляване два пъти на всички максимални елементи на масив от реални числа;
  57. int HalveMaxRealArray(double anArray[], const int size)
  58. {
  59.     int count = 0;
  60.     // търсим макс. елемент
  61.     double max = anArray[0];
  62.     for (int i = 1; i < size; i++)
  63.         if (anArray[i] > max)
  64.             max = anArray[i];
  65.     // намерен е max, нека ги разполовим
  66.     for (int i = 0; i < size; i++)
  67.         if (anArray[i] == max)
  68.         {
  69.             anArray[i] = anArray[i] / 2.0;
  70.             count++;
  71.         }
  72.     return count;
  73. }
  74.  
  75. int main()
  76. {
  77.     // а) за намиране на броя на максималните елементи в масив от реални числа;
  78.     double Array[10] = { 1,2.5,11.2,4,5,6,11.2,8.1,8.5,11.2 };
  79.     cout << "a) Count of the maximal elements in array is " << CountOfMaxRealArray(Array, 10) << endl;
  80.  
  81.     // б) за намиране на индекса на последния отрицателен елемент в масив от реални числа;
  82.     // Функцията трябва да връща - 1, когато няма нито един отрицателен елемент
  83.     double Array2[11] = { 1, -2, 2, 3, 4, -4, 5, 6, -7, 7, 8 };
  84.     cout << "b) Index of the last negative element in the array2 is "
  85.         << IndexOfLastNegative(Array2, 11) << endl;
  86.  
  87.     // в) за намаляване два пъти на всички максимални елементи на масив от реални числа;
  88.     double Array3[11] = { 3, 2, 9, 3, 2, 9, 2, 6, 9, 2, 8 };
  89.     cout << "c) Halve of the maximal elements of the array3 is "
  90.         << HalveMaxRealArray(Array3, 11) << endl;
  91.     for (int i = 0; i < 11; i++) cout << Array3[i] << " ";
  92.     return 0;
  93. }
Add Comment
Please, Sign In to add comment