Форум программистов, компьютерный форум CyberForum.ru

Найти наименьшее значение массива по условию - C++

Восстановить пароль Регистрация
 
Noclip
43 / 27 / 2
Регистрация: 27.09.2011
Сообщений: 280
12.02.2012, 11:49     Найти наименьшее значение массива по условию #1
задание: Элементы массива M(n) упорядочены по не убиванию. Для заданного х: найти наименьшее K такое, что mk < x < mk+1
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2012, 11:49     Найти наименьшее значение массива по условию
Посмотрите здесь:

C++ Найти наибольшее и наименьшее значение
Найти наименьшее положительное значение элемента массива и его индекс C++
C++ Найти наименьшее однозначное число "х", удовлетворяющее условию
C++ Найти наибольшее и наименьшее значение среди элементов массива
C++ В квадратной матрице найти наименьшее и наибольшее значение по условию
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
12.02.2012, 12:37     Найти наименьшее значение массива по условию #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Noclip Посмотреть сообщение
не убиванию
Интересно будет увидеть массив, упорядоченный по убиванию.
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 <vector>
#include <cstdlib>
#include <algorithm>
#include <ctime>
#include <iomanip>
 
int main()
{
    std::srand(std::time(nullptr));
    const std::size_t size = 10;
    std::vector<int> v(size);
    std::generate(v.begin(), v.end(), [] { return std::rand() % 21; });
    std::sort(v.begin(), v.end());
    for(const auto& it: v)
        std::cout << std::setw(4) << it;
    std::cout << std::endl;
    const auto x = 10;
    const auto last =   std::find_if
                        (
                            v.begin(),
                            v.end(),
                            [x] (const int& num) -> bool
                            {
                                return num > x;
                            }
                        );
    if((last == v.end()) || (last == v.begin()))
        std::cout << "no k" << std::endl;
    else if(*(last - 1) < x)
        std::cout << last - v.begin() - 1 << std::endl;
    else
        std::cout << "no k" << std::endl;
    return 0;
}
http://liveworkspace.org/code/64618d...2fa9e4348c75fc
Noclip
43 / 27 / 2
Регистрация: 27.09.2011
Сообщений: 280
12.02.2012, 12:40  [ТС]     Найти наименьшее значение массива по условию #3
soon, можете вот это обьяснить а то я так и не понял
Для заданного х: найти наименьшее K такое, что mk < x < mk+1
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
12.02.2012, 12:46     Найти наименьшее значение массива по условию #4
Цитата Сообщение от Noclip Посмотреть сообщение
Для заданного х: найти наименьшее K такое, что mk < x < mk+1
Код
M1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }
x = 5.
Не существует k, удовлетворяющего условию *(M1 + k) < x && *(M1 + k + 1) > x 
~~~~~~~~~~~~~~~~~~~~~~~~~
M2 = { 1, 2, 3, 4, 6, 7, 8, 9, 0 }
x = 5.
k = 3, т.к. *(M2 + 3) < x && *(M2 + 3 + 1) > x
Если вы об этом.
Noclip
43 / 27 / 2
Регистрация: 27.09.2011
Сообщений: 280
12.02.2012, 13:36  [ТС]     Найти наименьшее значение массива по условию #5
soon, всёравно не понял!!
Ввожу я х
а потом что
чем является К это я не понял
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
12.02.2012, 13:46     Найти наименьшее значение массива по условию #6
Цитата Сообщение от Noclip Посмотреть сообщение
чем является К это я не понял
К - номер элемента, в массиве. Элемент #K должен быть меньше Х, а элемент #(K + 1) - больше.
Noclip
43 / 27 / 2
Регистрация: 27.09.2011
Сообщений: 280
12.02.2012, 16:04  [ТС]     Найти наименьшее значение массива по условию #7
soon, До меня дошло
вот что от меня нужно


Ввожу массив.
1 2 3 4 5 6 7 8 9
вводу х - 4,5
и смотрим
наименьшее К это 4тый элемент
тоесть 4 < 4,5
дальше K+1 - то есть 5тый
и тогда

4 < 4,5 < 5
получается наименьшее к это 4...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.02.2012, 20:53     Найти наименьшее значение массива по условию
Еще ссылки по теме:

Найти наибольшее и наименьшее значение массива из восьми элементов C++
C++ Найти наибольшее и наименьшее абсолютное значение вещественного массива
Функция: найти наименьшее из положительных элементов массива и вернуть его значение и индекс C++

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

Или воспользуйтесь поиском по форуму:
Noclip
43 / 27 / 2
Регистрация: 27.09.2011
Сообщений: 280
14.02.2012, 20:53  [ТС]     Найти наименьшее значение массива по условию #8
soon, а вот и мой вариант =)

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
#include <iostream.h>
        #include <iomanip.h>
        #include <conio.h>
        #include <system.hpp>
 
        int comp(const void *a,const void *b)
        {return +(*(int*)a-*(int*)b);
        }
 
        int main()
        {int n,i,k;
         float x;
         cout<<"N=";cin>>n;
         float *a=new float[n];
         cout<<"vvedite elementi \n";
         for (i=0;i<n;i++) cin>>*(a+i);
         //cout<<"vivod elementov massiva        :";
         //for (i=0;i<n;i++) cout<<setw(4)<<a[i];
        qsort(a,n,sizeof(int),comp);
         cout<<"\nvivod elementov massiva (qsort):";
         for (i=0;i<n;i++) cout<<setw(4)<<*(a+i);
         cout<<"\nVvedite x :"; cin>>x;
        for (i=0;i<n && *(a+i)<x;i++) k=i;
        if ((*a+k+1)>x) cout<<"Naimenshee K="<<k<<'\n';
        else cout<<"Takogo K Het\n";
        delete (a);
        system("pause");
        }
Yandex
Объявления
14.02.2012, 20:53     Найти наименьшее значение массива по условию
Ответ Создать тему
Опции темы

Текущее время: 07:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru