• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

С++

Sanechka333

New member
07.05.2021
4
0
BIT
0
Задайте два вектора А (п) и В (m). Выполните следующие задачи:



определить вектор С так, чтобы все его элементы были равны сумме соответствующих элементов векторов А и В, если в А и В разница между любыми двумя соседними элементами не превышает максимального значения двух векторов; если же превышает, то D будет вектором нулевых элементов, количество которых равно целой части максимального значения с двух векторов;



найти произведение элементов вектора, расположенных между первым и вторым нулевыми элементами;



переделать вектор так, чтобы сначала располагались все элементы, равные нулю, а потом - все остальные элементы.




Вот что я смогла сделать. Я слабо понимаю первый пункт, поэтому ничего не смогла сделать. Кто может, помогите пожалуйста исправить. У меня уже мозг сломался

#include <stdio.h>
#include <iostream>
#include <cstdlib>
using namespace std;
const int Nmax = 100;
double a[Nmax];
int main(int argc, char** argv) {
int n,one,too,k=0,pr=1;
{
int n, m, *A, *B, *C;
cout<<"Введіть розмір масиву А\n"<<endl;
cin>>n;

cout<<"Введіть розмір масиву B\n"<<endl;
cin>>m;

A = new int [n];
B = new int [m];
int sum = 0;
for(int i=0;i<n;i++){
C = A + B;
}

cout<<"Введіть елементи масиву А\n"<<endl;
for(int i = 0; i< n; ++i)
{
cin>>A;
}

cout<<"Введіть елементи масиву B\n"<<endl;
for(int i = 0; i< m; ++i)
{
cin>>B;
}

int a[C];
for (int i=0; i<C; i++)
{cout << "a("<<i<<")="; cin>>a;
}
for (int i=0;i<n; i++)
{
if (a==0&&k<1)
{one=i;k++;}
}
for (int i=one;i<n; i++)
{
if (a[i+1]==0&&k<2)
{too=i+1;k++;}
}
for (int i=one+1;i<too; i++)
pr*=a;
cout<<"Произведение элементов между первым и вторым элементами равно: "<<pr;
float b,max,a[100];

cout<<"Massiv a\n";
for(i=0;i<C;i++)
cin>>a;
for(j=1;j<=n-1;j++)
for(i=0;i<=n-1-j;i++)
if (a>a[i+1])
{
b=a;
a=a[i+1];
a[i+1]=b;
}
cout<<"Massiv a\n";
for(i=0;i<C;i++)
cout<<"a("<<i<<")="<<a<<"\t";
cout<<endl;


return 0;
}
 

The Vincenzo

Green Team
11.08.2019
89
12
BIT
0
Привет Sanechka333, по твоему, вопросу "Задать 2 вектора", сделал такую задачу, и у меня все получилось.
C++:
void name_age()
{
    vector<string> name;
    vector<double> age;
    vector<string> name2;
 
    for (int i = 0; i < 5; ++i)
    {
        cout << "Name > " ;                 //имя в вектор
        string n;
        cin >> n;
        name.push_back(n);
    }
 
    cout << "\n";
 
    for (int i = 0; i < 5; ++i)
    {
        cout << "Age > ";                   //возраст в вектор
        double a;
        cin >> a;
        age.push_back(a);
    }
 
    name2 = name;                           //копия вектора имен
    sort(name2.begin(), name2.end());       //сортировка копии
 
    
    for (int j = 0; j < 5; ++j)  //надо чтобы вектор age
                                 //совпадал с именами
                                 //после сортировки
    {
        vector<string>::iterator it = find(name.begin(), name.end(), name2[j]);
        age.push_back(age[it - name.begin()]);
    }
    
    age.erase(age.begin(), age.begin() + 5);
 
    for (int i = 0; i < 5; ++i)
    {
        cout << name2[i] << "  " << age[i] << endl;
    }
}

Надеюсь, поможет.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!