Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
scherbakovss201
15 / 6 / 16
Регистрация: 22.12.2015
Сообщений: 1,502
#1

Все отрицательные элементы вектора заменить их квадратами - C++

21.04.2017, 23:53. Просмотров 333. Ответов 14
Метки нет (Все метки)

Если действительный вектор X имеет хотя бы один элемент, который меньше 2,# То все отрицательные элементы заменить их квадратами, оставив другие
# Без изменения, в противном случае вектор умножить на 0.1.
С++

вот код на Python, нужен на С++
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# ввод вектора
n = int(input("n => "))
X = []
for i in range(n): X.append(float(input('-> ')))
 
# ищем элемент меньше 2
m = 0
while (m < n) and (X[m] >= 2): m += 1
ok = m < n
 
# действия с массивом
for i in range(n):
    if ok:
        if X[i] < 0:
            X[i] = X[i]**2
    else:
        X[i] = X[i] * 0.1
        
# новый массив        
for a in X: print('{0:.2f}'.format(a), end = " ")
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2017, 23:53
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Все отрицательные элементы вектора заменить их квадратами (C++):

Заменить все отрицательные элементы массива их квадратами и отсортировать все элементы по возрастанию
Помогите пожалуйста заменить все отрицательные элементы массива их квадратами...

Заменить все отрицательные элементы массива их квадратами
В одномерном массиве состоящий из N действительных элементов, 3 заменить все...

Заменить все отрицательные элементы массива их квадратами
Нужна помощь с задачей. Не пишу на c++, потому не знаю как это написать. 2)...

Даны действительные числа. Заменить все отрицательные элементы их квадратами
Я новичок в программировании, помогите. Даны действительные числа А1....,А18....

Функция: все отрицательные элементы массива заменить их квадратами и отсортировать по убыванию
все отрицательные элементы заменить их квадратами и сортировать по убиванию...

Заменить отрицательные элементы в массиве их квадратами
Заменить отрицательные элементы в числовом массиве из n чисел (n&gt;10) их...

14
zss
Модератор
Эксперт С++
6950 / 6512 / 4133
Регистрация: 18.12.2011
Сообщений: 17,173
Завершенные тесты: 1
22.04.2017, 11:04 #2
C++
1
2
3
for(int i=0;i<N;i++)
   if(x[i]<0)
      x[i]*=x[i];
1
scherbakovss201
15 / 6 / 16
Регистрация: 22.12.2015
Сообщений: 1,502
22.04.2017, 17:26  [ТС] #3
Цитата Сообщение от zss Посмотреть сообщение
Сергей Сергеевич
Не работает,как нужноВсе отрицательные элементы вектора заменить их квадратами
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
// 2-7 PY.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include <vector>
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    
    setlocale(LC_ALL, "Russian");
    int nx;
    cout << "Ведите размер Вектора Х: "<<endl;
    cin >> nx;
    vector <float> X(nx);///вектор размером на nx элементов
 
    cout << "Заполняем вектор  Х: ";
    cout << endl;
    for (int i = 0; i < nx; i++)
    {
        cout << "Ведите значение елемента вектора Х: ";
        cout << i << endl;
        cin >> X[i];
    }
 
 
 
 
    for (int i = 0; i<nx; i++)
    { 
    // Ищем компонент меньше 2  
        if (X[i]<2)
        {   
        if (X[i]<0)
        {
            X[i] *= X[i];//Все отрицательные заменяем их квадратами
        }
        else
        {
            X[i] = X[i] * 0.1;//иначе умножаем на 0.1
        }
        }//if
    }//for
 
    //Новый Вектор
     cout << "Новые значения вектора Х: ";
    for (int i = 0; i < nx; i++)
    {
        
        cout << X[i]<<endl;
    }
 
    system("pause");
    return 0;
}
0
Michael_Atak
53 / 53 / 23
Регистрация: 26.10.2011
Сообщений: 175
Завершенные тесты: 1
22.04.2017, 17:46 #4
Лучший ответ Сообщение было отмечено scherbakovss201 как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
// 2-7 PY.cpp: определяет точку входа для консольного приложения.
//
 
 
#include <iostream>
#include <vector>
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
 
    setlocale(LC_ALL, "Russian");
    int nx;
    cout << "Razmer: "<<endl;
    cin >> nx;
    vector <float> X(nx);///вектор размером на nx элементов
 
    cout << "Zapoln: ";
    cout << endl;
    for (int i = 0; i < nx; i++)
    {
        cout << "El x: ";
        cout << i << endl;
        cin >> X[i];
    }
 
 
 
 
    for (int i = 0; i < nx; i++)
    {
        if (X[i] < 2)
        {
            for (int j = 0; j < nx; j++)
            {
                if (X[j] < 0)
                    X[j]*=X[j];
            }
            break;
        }
        else if(i == nx-1)
        {
            for (int j = 0; j < nx; j++)
                X[j] = X[j]*0.1;
            break;
        }
    }
 
    //Новый Вектор
     cout << "New X: ";
    for (int i = 0; i < nx; i++)
    {
 
        cout << X[i]<<endl;
    }
 
    system("pause");
    return 0;
}
1
scherbakovss201
15 / 6 / 16
Регистрация: 22.12.2015
Сообщений: 1,502
22.04.2017, 17:55  [ТС] #5
Цитата Сообщение от Michael_Atak Посмотреть сообщение
// 2-7 PY.cpp: определяет точку входа для консольного приложения.
//
на 0.1 не умножает.
0
Manowar
1552 / 484 / 164
Регистрация: 12.03.2016
Сообщений: 1,823
Завершенные тесты: 1
22.04.2017, 20:00 #6
Цитата Сообщение от scherbakovss201 Посмотреть сообщение
на 0.1 не умножает.
Да он и первое условие задания не выполняет.
1
Michael_Atak
53 / 53 / 23
Регистрация: 26.10.2011
Сообщений: 175
Завершенные тесты: 1
22.04.2017, 21:49 #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Razmer:
8
Zapoln:
El x: 0
4
El x: 1
5
El x: 2
68
El x: 3
4
El x: 4
2
El x: 5
3
El x: 6
6
El x: 7
5
New X: 0.4
0.5
6.8
0.4
0.2
0.3
0.6
0.5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Razmer:
8
Zapoln:
El x: 0
3
El x: 1
5
El x: 2
4
El x: 3
-2
El x: 4
-5
El x: 5
-7
El x: 6
-8
El x: 7
45
New X: 3
5
4
4
25
49
64
45
что он не выполняет??
1
Manowar
1552 / 484 / 164
Регистрация: 12.03.2016
Сообщений: 1,823
Завершенные тесты: 1
22.04.2017, 22:13 #8
Цитата Сообщение от scherbakovss201 Посмотреть сообщение
Если действительный вектор X имеет хотя бы один элемент, который меньше 2,# То все отрицательные элементы заменить их квадратами,
Где первый элемент в квадрате? Есть только остальные 4.
Все отрицательные элементы вектора заменить их квадратами
1
Michael_Atak
53 / 53 / 23
Регистрация: 26.10.2011
Сообщений: 175
Завершенные тесты: 1
22.04.2017, 22:20 #9
эм...
на скриншоте)
1
Michael_Atak
53 / 53 / 23
Регистрация: 26.10.2011
Сообщений: 175
Завершенные тесты: 1
22.04.2017, 22:22 #10
Вот же, вы это искали?
1
Миниатюры
Все отрицательные элементы вектора заменить их квадратами  
Manowar
1552 / 484 / 164
Регистрация: 12.03.2016
Сообщений: 1,823
Завершенные тесты: 1
22.04.2017, 22:32 #11
Цитата Сообщение от Michael_Atak Посмотреть сообщение
Вот же, вы это искали?
Да ничего я не искал. Ввел 5 отрицательных элементов. Результат Вы видели. И так всегда когда вводишь все отрицательные элементы.
1
Michael_Atak
53 / 53 / 23
Регистрация: 26.10.2011
Сообщений: 175
Завершенные тесты: 1
22.04.2017, 22:38 #12
и?)
что не так?
это разве не удовлетворяет условию задачи??
Цитата Сообщение от scherbakovss201 Посмотреть сообщение
Если действительный вектор X имеет хотя бы один элемент, который меньше 2,# То все отрицательные элементы заменить их квадратами, оставив другие
# Без изменения, в противном случае вектор умножить на 0.1.
Добавлено через 25 секунд
разве отрицательный элемент не меньше 2?
2
Manowar
1552 / 484 / 164
Регистрация: 12.03.2016
Сообщений: 1,823
Завершенные тесты: 1
22.04.2017, 23:03 #13
Michael_Atak, извиняюсь, все правильно, просто результат выводится в трудно читабельном виде, что сбило столку. Лучше располагайте изначальный вектор в строчку, а измененный под ним чтобы лучше была видна разница.
2
Michael_Atak
53 / 53 / 23
Регистрация: 26.10.2011
Сообщений: 175
Завершенные тесты: 1
22.04.2017, 23:23 #14
мановар, я лишь добавил рабочую часть в изначальном коде)
Цитата Сообщение от мановар Посмотреть сообщение
Michael_Atak, извиняюсь
Да все в порядке)
1
scherbakovss201
15 / 6 / 16
Регистрация: 22.12.2015
Сообщений: 1,502
23.04.2017, 00:05  [ТС] #15
Считаю на этом тему закрытой..
По желанию можете заглянуть сюда
Там минимальный элемент в 2х мерном массиве выводиться,а вот по столбцам у меня не получаеться.Да еще и индексы минимального элемента нужно вывести.
0
23.04.2017, 00:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.04.2017, 00:05
Привет! Вот еще темы с решениями:

Все отрицательные члены массива заменить их квадратами
В массивах не силен, поэтому обращаюсь к знающим людям, форумные троли лесом. ...

Заменить в одномерном числовом массиве отрицательные элементы их квадратами
Помогите пожалуйста заменить в одномерном числовом массиве отрицательные...

Заменить в одномерном числовом массиве отрицательные элементы их квадратами
Заменить в одномерном числовом массиве отрицательные элементы их квадратами

Найти сумму положительных элементов массива до максимального и заменить отрицательные элементы квадратами
В одномерном массиве, состоящем из n вещественных элементов, вычислить:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru