Răspuns :
#include "stdafx.h"
#include "iostream"
#include "conio.h"
#include "random"
#include "time.h"
#include "math.h"
using namespace std;
void main()
{
double n;
int *p;
int nrPare = 0;
int nrImpare = 0;
do {
cout << "Cate numere sa aiba sirul?";
cin >> n;
if (n < 1 || n > 1000) {
cout << "Introduceti o valoare de la 1 la 1000!\n";
}
} while (n < 1 || n > 1000);
srand(time(NULL));
p = new int [n];
for (int i = 0; i < n; i++) {
p [i]= rand();
cout << p[i] << " ";
if (p[i] % 2 == 0) {
nrPare = nrPare + 1;
}
else {
nrImpare = nrImpare + 1;
}
}
cout << "\n\nNumarul C (diferenta in valoare absoluta dintre numarul de valori pare din sir si numarul de valori impare din sir) este:" << abs(nrPare - nrImpare);
_getch();
delete p;
}
Ce am facut: in primul rand am inclus o multime de librarii :) aveam nevoie de ele pentru diferite functii pe care o sa le explic.
In primul rand, n este numarul de numere din sir, p este numarul care va fi verficat de fiecare data daca este par sau nu, nrPare si nrImpare sunt simple contoare sa luam in calcul numarul de numere pare si impare.
Apoi, am inclus un do while ca de la tastatura sa se introduca in numaru mai mic de 1000 si mai mare de 1.
Acum vin functiile noi: srand si rand pe care le observe imediat una dupa alta. rand() este o functie ce genereaza o valoare aleatorie, doar ca are in dezavantaj: aceasta produce aceleasi numere la fiecare compilare, deci nu total random. srand() da un seed lui rand() ca toate numerele sa fie total aleatorii. srand() primeste ca parametrii in seed, si acesta este singurul lucru mereu in miscare: timpul(time(NULL)), astfel seedul fiind mereu altul.
Am verificat paritatea numarului p folosind %(modulo) si am adaugat cate 1 in contorul respective paritatii lui p.
Apoi am folosit abs() , functie ce calculeaza valoarea absoluta a unui numar, in cazul acesta nrPare - nrImpare.
Sper ca am fost de folos, daca nu imi intelegi codul te rog sa imi zici :).
#include "iostream"
#include "conio.h"
#include "random"
#include "time.h"
#include "math.h"
using namespace std;
void main()
{
double n;
int *p;
int nrPare = 0;
int nrImpare = 0;
do {
cout << "Cate numere sa aiba sirul?";
cin >> n;
if (n < 1 || n > 1000) {
cout << "Introduceti o valoare de la 1 la 1000!\n";
}
} while (n < 1 || n > 1000);
srand(time(NULL));
p = new int [n];
for (int i = 0; i < n; i++) {
p [i]= rand();
cout << p[i] << " ";
if (p[i] % 2 == 0) {
nrPare = nrPare + 1;
}
else {
nrImpare = nrImpare + 1;
}
}
cout << "\n\nNumarul C (diferenta in valoare absoluta dintre numarul de valori pare din sir si numarul de valori impare din sir) este:" << abs(nrPare - nrImpare);
_getch();
delete p;
}
Ce am facut: in primul rand am inclus o multime de librarii :) aveam nevoie de ele pentru diferite functii pe care o sa le explic.
In primul rand, n este numarul de numere din sir, p este numarul care va fi verficat de fiecare data daca este par sau nu, nrPare si nrImpare sunt simple contoare sa luam in calcul numarul de numere pare si impare.
Apoi, am inclus un do while ca de la tastatura sa se introduca in numaru mai mic de 1000 si mai mare de 1.
Acum vin functiile noi: srand si rand pe care le observe imediat una dupa alta. rand() este o functie ce genereaza o valoare aleatorie, doar ca are in dezavantaj: aceasta produce aceleasi numere la fiecare compilare, deci nu total random. srand() da un seed lui rand() ca toate numerele sa fie total aleatorii. srand() primeste ca parametrii in seed, si acesta este singurul lucru mereu in miscare: timpul(time(NULL)), astfel seedul fiind mereu altul.
Am verificat paritatea numarului p folosind %(modulo) si am adaugat cate 1 in contorul respective paritatii lui p.
Apoi am folosit abs() , functie ce calculeaza valoarea absoluta a unui numar, in cazul acesta nrPare - nrImpare.
Sper ca am fost de folos, daca nu imi intelegi codul te rog sa imi zici :).