Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 12.12.2016
Сообщений: 22
1

В выходную последовательность записать только те числа, которые меньше суммы своих соседей

09.06.2017, 16:14. Показов 1770. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В выходную последовательность записать только те числа, которые меньше суммы своих соседей (если первое число меньше второго, записываем первое число; если второе число меньше суммы первого и третьего числа, записываем второе число, если последнее меньше предпоследнего, записываем последнее число)
При работе с файлами работала только с одним числом, а как сравнивать числа из файлами с другими числами вообще не представляю. И тем более, как осуществить это условие для первого и последнего числа(
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.06.2017, 16:14
Ответы с готовыми решениями:

Записать только те числа, которые больше своих соседей
Есть задание.(продолжение) В выходную последовательность записать только те числа, которые больше...

В файл out.txt записать те числа, которые больше своих соседей
Дан ряд чисел в файле in.txt : 0 2 -3 4 1 8 7 10 Нужно в файл out.txt записать те числа,которые...

Записать в массив B числа, которые меньше соседей слева и справа
Помогите решить Имеется одномерный массив чисел А. Записать в массив B числа, которые меньше...

Найти в массиве элементы, которые больше двух своих соседей по вертикали / горизонтали и при этом меньше двух других соседей
Помогите пожалуйста!!!задача на java решается находит в массиве A все элементы, которые...

4
1505 / 968 / 812
Регистрация: 30.04.2016
Сообщений: 3,334
09.06.2017, 18:00 2
Jonquil_, здравствуйте! Числа из файла можно поместить в массив и затем обработать. Вот пример программы для работы с таким массивом (если вам нужно для файла, пишите, я сделаю):

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
#include <iostream>
#include <windows.h> //Шрифт консоли - Lucida Console
 
using namespace std;
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int N, sum;
    cout << "Введите размер массива:" << endl;
    cout << "N = ";
    cin >> N;
    int* A = new int[N];
    cout << "Введите элементы массива:" << endl;
    for (int i = 0; i < N; i++)
    {
        cin >> A[i];
    }
    cout << "Искомые числа:" << endl;
    if (A[0] < A[1])
        cout << A[0] << " ";
    for (int i = 1; i < N - 1; i++)
    {
        sum = A[i-1] + A[i+1];
        if (A[i] < sum)
            cout << A[i] << " ";
    }
    if (A[N-1] < A[N-2])
        cout << A[N-1] << " ";
    cout << endl;
    delete [] A;
    system("pause");
    return 0;
}
0
Эксперт .NET
5871 / 4748 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
09.06.2017, 19:17 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <fstream>
#include <vector>
 
int main()
{
    std::vector<int> vec;
    std::ifstream in("input.txt"); //файл с исходными данными
    std::ofstream out("output.txt"); //файл с результатами
    int n;
    vec.push_back(0);
    while(in >> n)
        vec.push_back(n);
    vec.push_back(0);
    for(std::size_t index = 1; index < vec.size()-1; index++)
    {
        if(vec[index]<vec[index-1]+vec[index+1])
            out << vec[index] << " ";
    }
    return 0;
}
0
0 / 0 / 0
Регистрация: 12.12.2016
Сообщений: 22
10.06.2017, 12:24  [ТС] 4
К сожалению, все это нужно сделать без использования массива и вектора, и при этом файл уже дан, т.е нельзя вводить файл и одновременно проверять условие(( вот поэтому и туплю
0
Эксперт .NET
5871 / 4748 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
10.06.2017, 12:39 5
Цитата Сообщение от Jonquil_ Посмотреть сообщение
без использования массива и вектора
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <fstream>
 
int main()
{
    std::ifstream in("input.txt"); //файл с исходными данными
    std::ofstream out("output.txt"); //файл с результатами
    int n_prev=0, n=0, n_next=0;
    in >> n;
    while(in >> n_next)
    {
        if(n<n_prev+n_next)
            out << n << " ";
        n_prev = n;
        n = n_next;
    }
    if(n<n_prev) out << n;
    return 0;
}
0
10.06.2017, 12:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.06.2017, 12:39
Помогаю со студенческими работами здесь

Вывести номера и значения тех элементов массива, которые меньше своих соседей
Дан массив D из n элементов (n&lt;=45). Вывести номера и значения тех элементов массива, которые...

Дана матрица А (n*n). Определить такие элементы матрицы, которые строго меньше всех своих соседей, и в разных строках
Дана матрица A(n*n). Определить такие элементы матрицы, которые строго меньше всех своих соседей, в...

В выходную последовательность записать числа по абсолютной величине превосходящие заданное число
Задача 3: В выходную последовательность записать только числа, по абсолютной величине превосходящие...

Удалить из массива числа, которые равны среднему арифметическому своих соседей
#include &lt;stdio.h&gt; #include&lt;locale.h&gt; /*Программа должна убирать число которое равно среднему...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru