Napisz program w C++, który
• wylosuje, zapamięta w tablicy i wypisze 50 liczb całkowitych z przedziału
<-10,50>,
• wypisze ile było liczb ujemnych,
• obliczy iloczyn wszystkich liczb podzielnych przez 3,
• zamieni wszystkie elementy w tablicy równe, na sumę jego sąsiadów


Odpowiedź :

Odpowiedź:

#include <iostream>

#include <cstdlib>

#include <ctime>

#include <algorithm>

#include <numeric>

void fillArray(int tab[], int n) {

   srand(time(nullptr));

   for (int i = 0; i < n; i++) {

       tab[i] = rand() % 61 - 10;

   }

}

int countNegatives(int tab[], int n) {

   return std::count_if(tab, tab + n, [](const int a) { return a < 0; });

}

long long productOfDivisibleBy3(int tab[], int n){

   return std::accumulate(tab, tab + n, 1, [](int a,  const int b){

       if(b % 3 == 0 && b != 0){

           a *= b;

       }

       return a;

   });

}

int main() {

   const int arraySize = 50;

   int tab[arraySize];

   fillArray(tab, arraySize);

   std::cout << "Wylosowane liczby\n";

   for (int number: tab) {

       std::cout << number << std::endl;

   }

   std::cout << "Ilosc liczb ujemnych: " << countNegatives(tab, arraySize) << std::endl;

   std::cout << "Iloczyn liczb podzielnych przez 3: " << productOfDivisibleBy3(tab, arraySize);

   return 0;

}

Wyjaśnienie:

Dla tego iloczynu to nie wiem kto wpadł na taki pomysł, ale przy 50 liczbach strasznie duże wyniki wychodzą, ale jest dobrze. Jak powiesz mi o co chodzi w tym ostatnim, to też je zrobię

Viz Inne Pytanie