Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 06.12.2021
Сообщений: 16

Элементы массива модуль которых больше 10 замените на 1

06.12.2021, 01:27. Показов 1812. Ответов 8

Студворк — интернет-сервис помощи студентам
доброго утра ; )
я потратила всю ночь, чтоб понять как работать с массивами, только не разобралась одна, вся голова в тумане...
вот одна из задач, которую я хотела бы решить:

Дан массив вещественных чисел С(16). Все элементы этого массива, модуль которых больше 10, замените на 1, остальные
округлите до ближайшего целого.

как мне перебрать массивы, чтоб заменить и округлить их ?
и как вы разобрались с массивами? посоветуйте хороший урок, прошу. за всю ночь я так и не нашла урока с объяснениями и задачами на все возможные случаи с массивами.

спасибо всем, за будущие отклики )
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.12.2021, 01:27
Ответы с готовыми решениями:

Удалить из исходного массива все элементы, модуль которых больше 1
Пользователь задаёт массив типа double, требуется сформировать новый массив, в котором числа идут в том же порядке, но удалить из...

Вывести в порядке невозрастания (убывания) элементы массива, модуль которых больше 2
2. Дан одномерный массив из N случайных действительных чисел в диапазоне от -4 до 8 . Вывести в порядке невозрастания (убывания) ...

Вывести в порядке невозрастания (убывания) элементы массива, модуль которых больше 2
Собственно сама задачка : Дан одномерный массив из N случайных действительных чисел в диапазоне от -4 до 8 . Вы- вести в порядке...

8
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
06.12.2021, 02:52
Лучший ответ Сообщение было отмечено V_veronika_R как решение

Решение

V_veronika_R, если размер массива известен заранее - как в этой задаче - можно применять статический массив:
C++
1
2
const int n=16; // размер массива
double a[n]; // объявление массива
элементы массива (индексация начинается с нуля): a[0],a[1],a[2]...a[15]

сначала нужно заполнить массив значениями, например с клавиатуры:
C++
1
2
for (int i = 0; i < n; i++)    
        cin >> a[i];
чтобы заменить значение допустим первого элемента массива на число 5, пишем:
C++
1
a[0]=5;
значение всех элементов на число 5 меняем в цикле:
C++
1
2
for (int i = 0; i < n; i++)
    a[i]=5;
в Вашей задаче нужно записать:
C++
1
2
3
4
5
for (int i = 0; i < n; i++)
{
     if(fabs(a[i])>10.) a[i]=1.; // если модуль элемента больше 10 элемент принимает значение 1
     else a[i]=round(a[i]); // в противном случае округляем к ближайшему целому
}
осталось вывести результат на экран:
C++
1
2
3
for (int i = 0; i < n; i++)
    cout << a[i] << " ";
cout << "\n";
в начале кода подключите
C++
1
#include <cmath> // для поддержки функций fabs() и round()
0
 Аватар для sergeydeleu
20 / 9 / 4
Регистрация: 22.01.2015
Сообщений: 186
06.12.2021, 04:26
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
#include<iostream>
 
using namespace std;
 
void Init(double* arr, const int size); // инициализация массива 
 
void Output(double* arr, const int size); // вывод массива
 
void Abs10(double* arr, const int size);  // функция которая выполняет необходимые преобразования массива
 
 
 
void main()
{
    const int size = 16;
    double arr[size] = { 0 };
 
    Init(arr, size);
    Output(arr, size);
    cout << endl << endl;
    Abs10(arr, size);
    Output(arr, size);
 
}
 
 
void Init(double* arr, const int size)
{
    srand(time(0));
 
    for (int i = 0; i < size; i++)
    {
        // инициализация массива случайными вещественными числами в диапазоне от -50 до 50 с двумя знаками после запятой
        arr[i] = rand() % 10000/100.0-50; 
    }
}
 
void Output(double* arr, const int size)
{
    for (int i = 0; i < size; i++)
    {
        cout << arr[i]<<endl;
    }
    cout << endl;
}
 
void Abs10(double* arr, const int size)
{
    for (int i = 0; i < size; i++)
    {
        if (abs(arr[i]) > 10)   // если arr[i]>10, то записываем в arr[i] единицу
        {
            arr[i] = 1;
        }
        else arr[i] = round(arr[i]);    // иначе округляем до ближайшего целого
    }
}
Добавлено через 9 минут
Цитата Сообщение от V_veronika_R Посмотреть сообщение
посоветуйте хороший урок
https://www.youtube.com/watch?v=GJFqT6Kz9NE

Еще советую посмотреть



Добавлено через 24 минуты
Еще советую посмотреть урок по отладчику: очень пригодится в программировании.
0
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
06.12.2021, 05:31
V_veronika_R, buddy, let me get you what you want.

Код не мой от Yetty, я только разместил объяву собрал в кучу.

Кликните здесь для просмотра всего текста
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
#include <iostream> // для ввода и вывода
#include <cmath> // для поддержки функций fabs() и round()
 
// Дан массив вещественных чисел С(16). Все элементы этого массива, модуль которых больше 10, замените на 1, остальные
// округлите до ближайшего целого.
int main() {
 
    const int n=16; // размер массива
    double a[n]; // объявление массива
    // элементы массива (индексация начинается с нуля): a[0],a[1],a[2]...a[15]
 
    //сначала нужно заполнить массив значениями, например с клавиатуры:
    for (int i = 0; i < n; i++)
        std::cin >> a[i];
 
    // в Вашей задаче нужно записать:
    for (int i = 0; i < n; i++)
    {
        // если модуль элемента больше 10 элемент принимает значение 1
        if (fabs(a[i])>10.) {
            a[i]=1.;
        } else {
            a[i] = std::round(a[i]); // в противном случае округляем к ближайшему целому
        }
    }
 
    // осталось вывести результат на экран:
    for (int i = 0; i < n; i++)
        std::cout << a[i] << " ";
    std::cout << "\n";
 
 
    return 0;
}
1
0 / 0 / 0
Регистрация: 06.12.2021
Сообщений: 16
06.12.2021, 06:22  [ТС]
спасибо ; )

Добавлено через 3 минуты
спасибо ' )
0
 Аватар для sergeydeleu
20 / 9 / 4
Регистрация: 22.01.2015
Сообщений: 186
06.12.2021, 14:44
V_veronika_R, когда наберете код, пройдитесь по нему отладчиком, чтобы понять как выполняется программа. Отладчик, также, помогает находить ошибки. Потренируйтесь на простых целочисленных массивах. Выполните, например, такие задания самостоятельно: найти максимальное и минимальное значение в массиве. И опять же пройдитесь по коду отдладчиком. Так вы вы будете понимать: как все устроено и как работает.

Я сам учусь! Готовлюсь к сабесу! Удачи в нашем нелегком пути от новичка до профи!
0
 Аватар для sergeydeleu
20 / 9 / 4
Регистрация: 22.01.2015
Сообщений: 186
06.12.2021, 15:05
V_veronika_R, чтобы видеть все элементы массива в отладчике, добавьте его в окно просмотра.





0
06.12.2021, 15:13

Не по теме:

sergeydeleu, ты что, первый раз на форуме? :)

0
 Аватар для sergeydeleu
20 / 9 / 4
Регистрация: 22.01.2015
Сообщений: 186
06.12.2021, 15:15
Цитата Сообщение от Nishen Посмотреть сообщение
sergeydeleu, ты что, первый раз на форуме?
В смысле?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.12.2021, 15:15
Помогаю со студенческими работами здесь

Как вывести в порядке невозрастания (убывания) элементы массива, модуль которых больше 2
5. Дан одномерный массив из N случайных действительных чисел в диапазоне от -4 до 8 . Вы-вести в порядке невозрастания (убывания)...

В начале массива расположить все элементы, модуль целой части которых больше 7, а потом - все остальные
Создать одномерный массив, состоящий из n вещественных элементов. Элементы массива определить при помощи случайных чисел в диапазоне от -14...

Задайте массив из n элементов. Замените нулем элементы массива, которые больше введенного с клавиатуры числа А
1. Задайте массив из n элементов. Замените нулем элементы массива, которые больше введенного с клавиатуры числа А. Выведите на экран...

Найти элементы таблицы, модуль которых больше 20 и меньше 50
Всем привет.Мне дали задание: Найти все элементы таблицы A модуль которых больше 20 и меньше 50. Буду благодарен за помощь.

В столбцах матрицы A переместить в конец все элементы, модуль которых больше S
Составить программу по заданному условию. Первая часть условия является заданием на разработку процедуры для любой функции f или (f1, f2)....


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru