Odpowiedź :
Odpowiedź:
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main(int argc, char const *argv[])
{
srand(time(NULL)); //odświeżanie seeda liczb pseudolosowych, aby z każdą kompilacją losowało nam inne liczby
int n;
cout << "Podaj liczbe oznaczajaca, ile nalezy wylosowac liczb z zakresu od -100 do 100" << endl;
cin >> n;
int *arrayWithRandomNumbers = new int [n];
//tworzymy tabele o pojemności takiej jak wcześniej określiliśmy
for (int i = 0; i < n; i++) //uzupełniamy tablicę losowo wylosowanymi liczbami z zakresu -100 do 100;
{
arrayWithRandomNumbers[i] = -100 + rand() % (100 - (-100) + 1); //min + rand() % ( max - min + 1 ) algorytm do wypisywania losowych liczb z tego zakresu
}
int countPositives = 0; //tworzymy licznik który będzie nam przechowywał ilość liczb dodatnich
int countNegatives = 0; //tworzymy licznik który będzie nam przechowywał ilość liczb ujemnych
for (int i = 0; i < n; i++) //jeszcze raz iterujemy się po tablicy aby policzyć ilość liczb negatywnych i pozytywnych
{
if (arrayWithRandomNumbers[i] > 0)
{
countPositives++; // zwiększamy licznik pozytywnych gry któraś z liczb jest większa od zera
}
if (arrayWithRandomNumbers[i] < 0)
{
countNegatives++; // zwiększamy licznik pozytywnych gry któraś z liczb jest mniejsza od zera
}
}
double positivesToNegatives; //tworzymy zmienną double do przechowywania stosunku, ponieważ będzie ona ułamkiem najprawdopodobniej
if (countNegatives != 0) //robimy warunek żeby dzielnik nie był zerem
{
positivesToNegatives = 1.0 * countPositives / countNegatives; //liczymy stosunek castując inta na doubla (dlatego jest mnożenie razy 1)
}
else
{
positivesToNegatives = 0;
}
//szukanie minimum i maximum
int min = arrayWithRandomNumbers[0]; //przypisujemy wstępnie, że minumum to będzie pierwsza wartość z tablicy
int max = arrayWithRandomNumbers[0]; //przypisujemy wstępnie, że maximum to będzie pierwsza wartość z tablicy
for (int i = 0; i < n; i++) //iterowanie po tablicy, aby znaleźć najmniejszą
{
if (min > arrayWithRandomNumbers[i]) //sprawdzamy czy pierwsza z liczb jest mniejsza niż liczby w tablicy
{
min = arrayWithRandomNumbers[i]; //jeśli z jakaś z liczb w tablicy jest mniejsza niż minimalna, to minimalną jest ta liczba
}
if (max < arrayWithRandomNumbers[i]) //sprawdzamy czy pierwsza z liczb jest większa niż liczby w tablicy
{
max = arrayWithRandomNumbers[i]; //jeśli z jakaś z liczb w tablicy jest większa niż maksymalna, to maksymalną jest ta liczba
}
}
double maxToMin = 1.0 * max / min; //liczymy stosunek w doublu, nie musimy sprawdzać czy nie jest 0, bo ma 0 w tablicy;
//zapełnianie tablicy liczby parzyste
const int length = 201; //przypisanie wielkości tablicy to zmiennej
int evenNumbers[length]; // deklaracja tablicy liczb parzystych o stałej zadanej wartości
for (int i = 0; i < length; i++) //iterujemy się po tablicy liczb parzystych którą chcemy uzupełnić
{
if (i < n) // uzupełniamy ją liczbami z tablicy liczb losowych
{
if (arrayWithRandomNumbers[i] % 2 == 0) //sprawdzamy czy losowa liczba jest parzysta
{
evenNumbers[i] = arrayWithRandomNumbers[i]; // jeśli jest, to wpisujemy ją do tablicy liczb parzystych
}
else
{
evenNumbers[i] = 0; // jeśli nie jest, to uzupełniamy to miejsce zerem
}
}
else // wszystkie pozostałe miejsca uzupełniamy zerami
{
evenNumbers[i] = 0;
}
}
//wyświetlanie
cout << "Losowe liczby z przedzialu -100 do 100 zapisane do tablicy to: " << endl;
for (int i = 0; i < n; i++)
{
cout << arrayWithRandomNumbers[i] << endl;
}
cout << "Ilosc liczb wiekszych od zera wynosi: " << endl;
cout << countPositives << endl;
cout << "Ilosc liczb mniejszych od zera wynosi: " << endl;
cout << countNegatives << endl;
cout << "Stosunek liczb pozytywnych wynosi: " << endl;
cout << positivesToNegatives << endl;
cout << "Najmniejsza z wylosowanych liczb to: " << endl;
cout << min << endl;
cout << "Najwieksza z wylosowanych liczb to: " << endl;
cout << max << endl;
cout << "Stosunek liczby najwiekszej do najmniejszej to: " << endl;
cout << maxToMin << endl;
cout << "Zawartosc tablicy liczb parzystych" << endl;
for (int i = 0; i < length; i++)
{
cout << evenNumbers[i] << endl;
}
return 0;
}
Wyjaśnienie:
Masz wyjaśnienie w komentarzach po //