Заменить в массиве из n случайных чисел, каждое из которых лежит в пределах от 50 до 200, все четные элементы нулями и вывести исходный и конечный массивы на экран. с++
Ответы
Ответ:
Объяснение:
#include <iostream>
#include <vector>
#include <time.h>
using namespace std;
int main() {
int i,jmax;
vector<int> originalArray;//начальный вектор
vector<int> evenArray;
srand(time(0));
//генерируем целый случайный вектор из 10 эелментов от 40 до 210
for (i = 0; i < 10; i++){
jmax = 40 + rand() % 210;
originalArray.push_back(jmax);
}
for (i = 0; i < 10; i++){
cout<<originalArray[i]<<" "; // вывод результата на экране
}
cout<<endl;
for (i = 0; i < 10; i++){
evenArray.push_back(originalArray[i]);//записали в другой вектор для удобства
}
for (int i = 0; i < 10; i++) {//проверяем на наличие четных чисел и если они от 50 до 200 то меняем их
if (evenArray[i]>50 && evenArray[i]<200){
if (evenArray[i] % 2 == 0) {
evenArray[i] = 0;
}
}
}
for (i = 0; i < 10; i++) {//выводим результат
cout << evenArray[i] << " ";
}
return 0;
}
#include <random>
#include <iostream>
#include <vector>
int getRandInt(int min = 50, int max = 200) {
std::random_device dev;
std::mt19937 rng(dev());
std::uniform_int_distribution<std::mt19937::result_type> dist6(min, max);
return dist6(rng);
}
void printV(std::vector<int> vec) {
for (int i : vec) {
std::cout << i << " ";
}
std::cout << "\n";
}
int main() {
std::vector<int> m {};
for (int i = 0; i < getRandInt(0, 10); i++) {
m.push_back(getRandInt());
}
printV(m);
for (int i = 0; i < m.size(); i++) {
if (m[i] % 2 == 0) {
m[i] = 0;
}
}
printV(m);
return 0;
}