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

Даны три действительных числа, выбрать (вывести на экран) те из них, которые пренадлежат интервалу

18.11.2013, 21:31. Показов 3031. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание такое: Даны три действительных числа, выбрать (вывести на экран) те из них, которые пренадлежат интервалу (4,7)... При написании кода использовать указатели и функцию возвращающую более одного результата...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.11.2013, 21:31
Ответы с готовыми решениями:

Даны три действительных числа, выбрать из них те, которые принадлежат интервалу от 1 до 3
Даны три действительных числа, выбрать из них то которые принадлежат интервалу от 1 до 3. Программа: Program Pawel; Var ...

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

Даны три действительных числа. Выбрать из них те, которые принадлежат интервалу (1,3)
Даны три действительных числа. Выбрать из них те, которые принадлежат интервалу (1,3).

12
 Аватар для Liername
1 / 1 / 0
Регистрация: 18.11.2013
Сообщений: 33
18.11.2013, 22:14
Лучше, конечно, было бы попробовать через векторы. Тогда получилось бы НАМНОГО компактнее и НАМНОГО красивее.
Но так как требуется чтобы обязательно были указатели...

То можешь попробовать так:

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> // Подключаем потоки
#include <vector>   // Подключаем векторы
 
// Создаем возвращаемую структура для массива
struct ARRAY
{
    double *_val; // Первый элемент
    size_t  _size;  // Размер массива
};
 
// Функция, возвращающая структуру подходящих величин
ARRAY* fFindBeyond(ARRAY *l_array)
{
    // Переменная для подсчета количества подходящих элементов
    size_t _count = 0;
 
    // Первый проход массива
    for(size_t i = 0; i<l_array->_size; i++)
        if(l_array->_val[i] > 4.0 && l_array->_val[i]<7.0) _count++;
 
    // Создаем структуру
    ARRAY *_result  = new ARRAY();
    _result->_size = _count;
    _result->_val = new double[_count];
 
    // Второй проход массива
    for(size_t i = 0, j=0; i<l_array->_size; i++)
        if(l_array->_val[i] > 4.0 && l_array->_val[i]<7.0)
        {
            _result->_val[j] = l_array->_val[i];
            j++;
        }
 
    // Возвращаем результат
    return _result;
}
 
int main()
{
    // Создаем массив
    ARRAY _array;
    _array._val  = new double[3];
    _array._size = 3;
 
    // Заполняем его
    _array._val[0] = 1.2;
    _array._val[1] = 4.3;
    _array._val[2] = 6.5;
 
    // Находим результат
    ARRAY *_result;
    _result = fFindBeyond(&_array);
 
    // Выводим
    for(size_t i = 0; i<_result->_size; i++)
        std::cout<<_result->_val[i]<<std::endl;
}
Реализация, в общем-то, примитивная, но для разового использования в качестве результата лабораторной работы вполне сгодится.
0
2 / 2 / 0
Регистрация: 17.11.2013
Сообщений: 96
19.11.2013, 03:46  [ТС]
Всем привет! Срочно нужна помощь!
Задание такое:
Сколько существует четырехзначных чисел, кратных 45, две средние цифры которых 7 и 9? Напечатать общее количество и сами числа. Напишите функцию, определяющую, удовлетворяет ли число заданному критерию.
Использовать функции (возвращающие более одного результата) и указатели...
0
 Аватар для ПерС
587 / 490 / 371
Регистрация: 05.11.2013
Сообщений: 1,271
Записей в блоге: 6
19.11.2013, 06:53
Цитата Сообщение от Kostia1012 Посмотреть сообщение
Использовать функции (возвращающие более одного результата) и указатели...
ишь ты, еще и срочно... если числа 4-значные, просто перебери их и проверь той самой функцией.
зачем ей возвращать более 1 результата и работать с указателем - неясно совершенно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int f45 (int n) {
 int d2 = (n%1000)/100;
 int d3 = (n%100)/10;
 return (n%45==0 && ((d2==7 && d3==9) || (d3==7 && d2==9)) ? 1 : 0);
}
#include <iostream.h>
int main () {
 int i,k=0;
 for (i=1000; i<10000; i++) if (f45(i)) { k++; cout << i << " "; }
 cout << endl << "Всего: " << k;
 cin.get();
 return 0;
}
2790 2970 6795 6975
Всего: 4
0
2 / 2 / 0
Регистрация: 17.11.2013
Сообщений: 96
19.11.2013, 10:15  [ТС]
А как сделать с функцией возвращающую более одной переменной и указателем?...
0
2 / 2 / 0
Регистрация: 17.11.2013
Сообщений: 96
19.11.2013, 10:17  [ТС]
Нужно без массива... Эти числа вводит сам пользователь, они проверяются...
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
19.11.2013, 10:21
Kostia1012, в C++ непосредственно функция не может вернуть более одного значения. А вот с помощью указателей вполне.
1
 Аватар для Liername
1 / 1 / 0
Регистрация: 18.11.2013
Сообщений: 33
19.11.2013, 10:35
Тогда так:

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
#include <iostream> // Подключаем потоки
 
// Создаем возвращаемую структура для массива
struct ARRAY
{
    double *_val; // Первый элемент
    size_t  _size;  // Размер массива
};
 
// Функция, возвращающая структуру подходящих величин
ARRAY* fFindBeyond(ARRAY *l_array)
{
    // Переменная для подсчета количества подходящих элементов
    size_t _count = 0;
 
    // Первый проход массива
    for(size_t i = 0; i<l_array->_size; i++)
        if(l_array->_val[i] > 4.0 && l_array->_val[i]<7.0) _count++;
 
    // Создаем структуру
    ARRAY *_result  = new ARRAY();
    _result->_size = _count;
    _result->_val = new double[_count];
 
    // Второй проход массива
    for(size_t i = 0, j=0; i<l_array->_size; i++)
        if(l_array->_val[i] > 4.0 && l_array->_val[i]<7.0)
        {
            _result->_val[j] = l_array->_val[i];
            j++;
        }
 
    // Возвращаем результат
    return _result;
}
 
int main()
{
    // Создаем массив
    ARRAY _array;
    _array._val  = new double[3];
    _array._size = 3;
 
    // Вводим числа
    for(size_t i=0; i<_array._size; i++)
    {
        std::cout<<"Please input value "<<i+1<<": ";
        std::cin>>_array._val[i];
    }
 
 
    // Находим результат
    ARRAY *_result;
    _result = fFindBeyond(&_array);
 
    // Выводим
    std::cout<<std::endl<<"Result:"<<std::endl;
    for(size_t i = 0; i<_result->_size; i++)
        std::cout<<_result->_val[i]<<std::endl;
}
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
19.11.2013, 10:42
Пыщь
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
#include <math.h>
#include <iostream.h>
 
#define THREE 3
#define LIMMIN 4
#define LIMMAX 7
 
bool ret3Num( double &x1, double &x2, double &x3, bool *flag3Num )
{
bool retValue = false;
 
  if( x1 > LIMMIN && x1 < LIMMAX ) { flag3Num[0] = true; retValue = true; }
  if( x2 > LIMMIN && x2 < LIMMAX ) { flag3Num[1] = true; retValue = true; }
  if( x3 > LIMMIN && x3 < LIMMAX ) { flag3Num[2] = true; retValue = true; }
 
return retValue;
}
 
int main()
{
double x1, x2, x3;
 cin >> x1;
 cin >> x2;
 cin >> x3;
 
bool flag3Num[THREE] = {false};
 
cout << endl;
if( ret3Num( x1, x2, x3, flag3Num ) )
  {
  if( flag3Num[0] ) cout << x1 << endl;
  if( flag3Num[1] ) cout << x2 << endl;
  if( flag3Num[2] ) cout << x3 << endl;
  }
else
  {
  cout << "No one";
  }
 
cin.ignore(2);
return 0;
}
1
2 / 2 / 0
Регистрация: 17.11.2013
Сообщений: 96
19.11.2013, 10:42  [ТС]
Так я же говорю, что без массива надо...
0
2 / 2 / 0
Регистрация: 17.11.2013
Сообщений: 96
19.11.2013, 10:48  [ТС]
А как это сделать, подскажите?...
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
19.11.2013, 10:52
Совсем-совсем без массива
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
#include <math.h>
#include <iostream.h>
 
#define LIMMIN 4
#define LIMMAX 7
 
bool ret3Num( double &x1, double &x2, double &x3, bool &flag1Num, bool &flag2Num, bool &flag3Num )
{
bool retValue = false;
 
  if( x1 > LIMMIN && x1 < LIMMAX ) { flag1Num = true; retValue = true; }
  if( x2 > LIMMIN && x2 < LIMMAX ) { flag2Num = true; retValue = true; }
  if( x3 > LIMMIN && x3 < LIMMAX ) { flag3Num = true; retValue = true; }
 
return retValue;
}
 
int main()
{
double x1, x2, x3;
 cin >> x1;
 cin >> x2;
 cin >> x3;
 
bool flag1Num = false, flag2Num = false, flag3Num = false;
 
cout << endl;
if( ret3Num( x1, x2, x3, flag1Num, flag2Num, flag3Num ) )
  {
  if( flag3Num1 ) cout << x1 << endl;
  if( flag3Num2 ) cout << x2 << endl;
  if( flag3Num3 ) cout << x3 << endl;
  }
else
  {
  cout << "No one";
  }
 
cin.ignore(2);
return 0;
}
0
 Аватар для ПерС
587 / 490 / 371
Регистрация: 05.11.2013
Сообщений: 1,271
Записей в блоге: 6
19.11.2013, 13:55
Спорю, он скажет, что это неправильно

Не по теме:

Блин, во бред-то

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.11.2013, 13:55
Помогаю со студенческими работами здесь

Даны три действительных числа, выбрать из них то которые принадлежат интервалу
Даны три действительных числа, выбрать из них то которые принадлежат интервалу от 1 до 3. Программа: Program Pawel; Var ...

Даны три действительных числа. Выбрать из них те, которые принадлежат интервалу
1. Даны три действительных числа. Выбрать из них те, которые принадлежат интервалу (1,3) 2. Дана таблица из n строк и n...

Даны три действительных числа. Выбрать из них те, которые принадлежат интервалу (1, 3)
Даны три действительных числа. Выбрать из них те, которые принадлежат интервалу (1, 3).

Даны три вещественных числа. Вывести на экран те из них, которые принадлежат интервалу (1,6-3,8)
помогите пожалуйста

Даны три вещественных числа. Вывести на экран те из них, которые принадлежат интервалу
Было задание: Даны три вещественных числа. Вывести на экран: а) те из них, которые принадлежат интервалу (1,6-3,8) Сделал вот так: ...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
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 - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru