alarm
Задайте вопрос
Информатика
Cordafym

посчитайте. ЭТО УЖЕ КРИК ДУШИ Напишите программу по-братски я сижу над ней ооочень долго, но ничего на ум не приходит

ответы: 1
Зарегистрируйтесь, чтобы добавить ответ
Ответ:

Якось так в мене вийшло. Думаю може бути таке, що не весь код буде правильним, але я написав так, як зрозумів умову. Я так зрозумів, що тип векторів a і b буде float і вони заповнюються вручну з клавіатури. І ще результатів я не виводив, якщо треба буде, то думаю сама зрозумієш, як їх вивести. В 2 завданні, я так зрозумів, треба окремо помножити елементи векторів а і b, які знаходяться від першого елементу зі значенням 0 до другого з 0. Змінні doba і dobb містять результат множення. У випадку, якщо найдено тільки один нульовий елемент, то множиться від нього до кінця вектора; а якщо не найдено, то буде 0. А в 3 завданні я просто використав алгоритм сортування, який сортує значення векторів в порядку зростання. І вийде, що елементи з 0 будуть найперші.

P. S. Якщо щось не так, як треба, то або сама поправиш, або я поможу.

#include <iostream>

#include <vector>

#include <algorithm>

#include <math. h>

using namespace std;

int main(){

int n, m;

cin >> n >> m;

vector<float> a(n), b(m), c, d;

for(float& i: a)

cin >> i;

for(float& i: b)

cin >> i;

//1

float maxv = max(*max_element(a. begin(), a. end()), *max_element(b. begin(), b. end()));

bool isBgr = false;

for (int i(1); i < n - 1; i++) {

if(a[i - 1] - a[i] > maxv || a[i] - a[i - 1] > maxv){

isBgr = true;

break;

}

}

if(isBgr)

d. resize(abs(floor(maxv)), 0);

else{

c. resize(max(n, m));

for (int i = 0; i < c. size(); i++) {

if(i > n)

c[i] = b[i];

else if(i > m)

c[i] = a[i];

else c[i] = a[i] + b[i];

}

}

//2a

int i01(0), i02(0), doba(1), dobb(1);

bool is02 = false;

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

if(a[i] == 0 && !is02){

i01 = i;

is02 = true;

}

else if(a[i] == 0 && is02)

i02 = i;

}

if(i01 != 0){

if(i02 == 0)

i02 = n;

for (int i(i01 + 1); i < i02; i++)

doba*=a[i];

}else doba = 0;

//2b

is02 = false;

i01 = 0;

i02 = 0;

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

if(b[i] == 0 && !is02){

i01 = i;

is02 = true;

}

else if(b[i] == 0 && is02)

i02 = i;

}

if(i01 != 0){

if(i02 == 0)

i02 = m;

for (int i(i01 + 1); i < i02; i++)

dobb*=b[i];

}else dobb = 0;

cout << doba << ' ' << dobb;

//3

sort(a. begin(), a. end());

sort(b. begin(), b. end());

return 0;

}

87
reply
Чтобы ответить необходимо зарегистрироваться.

Другие вопросы: - Информатика

1. Вставь пропущенное слово: Экр

Составить 10 тестов на тему "раб

Використання бази даних в торгів

Там ещё в ответе Алла написано П

* Ствоимо простий калькулятор*/'

Расставь символы в том порядке,

Контакты
Реклама на сайте