Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Kostia1012
1 / 1 / 0
Регистрация: 17.11.2013
Сообщений: 96
#1

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

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

Задание такое: Даны три действительных числа, выбрать (вывести на экран) те из них, которые пренадлежат интервалу (4,7)... При написании кода использовать указатели и функцию возвращающую более одного результата...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2013, 21:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Даны три действительных числа, выбрать (вывести на экран) те из них, которые пренадлежат интервалу (C++):

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

Даны три вещественных числа. Выбрать те из них, которые принадлежат интервалу (1,3). (C++) - C++
Даны три вещественных числа. Выбрать те из них, которые принадлежат интервалу (1,3). Сделать нужно на С++. Буду очень признателен!!!...

Даны три целых числа. Вывести на экран те из них, которые являются положительными. - C++
1. Даны три целых числа. Вывести на экран те из них, которые являются положительными. 2. Найти все двузначные числа, сумма квадратов...

Даны три вещественных числа, вывести на экран те из них, которые не принадлежат заданному диапазону - C++
Даны три вещественных числа, вывести на экран те из них, которые не принадлежат диапазону (-3,8; 1,8). #include "stdafx.h" #include...

Заданные три действительных числа. Выбрать из них те, которые принадлежат промежутку (2,5) - C++
Заданные три действительных числа. Выбрать из них те, которые принадлежат промежутку (2,5). Помогите пожалуйста

Даны три числа. Выбрать те из них, которые принадлежат заданному отрезку [a,b] - C++
Даны три числа. Выбрать те из них, которые принадлежат заданному отрезку . помогите пожалуйста)))

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

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

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
Kostia1012
1 / 1 / 0
Регистрация: 17.11.2013
Сообщений: 96
19.11.2013, 03:46  [ТС] #3
Всем привет! Срочно нужна помощь!
Задание такое:
Сколько существует четырехзначных чисел, кратных 45, две средние цифры которых 7 и 9? Напечатать общее количество и сами числа. Напишите функцию, определяющую, удовлетворяет ли число заданному критерию.
Использовать функции (возвращающие более одного результата) и указатели...
0
ПерС
372 / 288 / 90
Регистрация: 05.11.2013
Сообщений: 821
Записей в блоге: 5
Завершенные тесты: 1
19.11.2013, 06:53 #4
Цитата Сообщение от 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
Kostia1012
1 / 1 / 0
Регистрация: 17.11.2013
Сообщений: 96
19.11.2013, 10:15  [ТС] #5
А как сделать с функцией возвращающую более одной переменной и указателем?...
0
Kostia1012
1 / 1 / 0
Регистрация: 17.11.2013
Сообщений: 96
19.11.2013, 10:17  [ТС] #6
Нужно без массива... Эти числа вводит сам пользователь, они проверяются...
0
SatanaXIII
Супер-модератор
Эксперт С++
5618 / 2653 / 246
Регистрация: 01.11.2011
Сообщений: 6,550
Завершенные тесты: 1
19.11.2013, 10:21 #7
Kostia1012, в C++ непосредственно функция не может вернуть более одного значения. А вот с помощью указателей вполне.
1
Liername
1 / 1 / 0
Регистрация: 18.11.2013
Сообщений: 33
19.11.2013, 10:35 #8
Тогда так:

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
Супер-модератор
Эксперт С++
5618 / 2653 / 246
Регистрация: 01.11.2011
Сообщений: 6,550
Завершенные тесты: 1
19.11.2013, 10:42 #9
Пыщь
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
Kostia1012
1 / 1 / 0
Регистрация: 17.11.2013
Сообщений: 96
19.11.2013, 10:42  [ТС] #10
Так я же говорю, что без массива надо...
0
Kostia1012
1 / 1 / 0
Регистрация: 17.11.2013
Сообщений: 96
19.11.2013, 10:48  [ТС] #11
А как это сделать, подскажите?...
0
SatanaXIII
Супер-модератор
Эксперт С++
5618 / 2653 / 246
Регистрация: 01.11.2011
Сообщений: 6,550
Завершенные тесты: 1
19.11.2013, 10:52 #12
Совсем-совсем без массива
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
ПерС
372 / 288 / 90
Регистрация: 05.11.2013
Сообщений: 821
Записей в блоге: 5
Завершенные тесты: 1
19.11.2013, 13:55 #13
Спорю, он скажет, что это неправильно

Не по теме:

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

0
19.11.2013, 13:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2013, 13:55
Привет! Вот еще темы с ответами:

Даны три числа. Выбрать те из них, которые принадлежат заданному отрезку [a,b]. - C++
не знаю си++, но так вышло что надо для универа решить хотя бы две задачки, если кто поможет буду благодарен.Вот сами задачки. 1.Даны...

Даны три числа, вывести на экран наименьшее из них. - C++
Даны три числа, вывести на экран наименьшее из них.

Даны три действительных числа a, b, c. Найти наибольшее из них - C++
Даны три действительных числа a, b, c. Найти наибольшее из них

Даны три действительных числа a, b, c. Найти наибольшее из них - C++
Даны три действительных числа a, b, c. Найти наибольшее из них!


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

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

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