0 / 0 / 0
Регистрация: 20.05.2015
Сообщений: 8
1

Ошибка в поиске максимального и минимального элемента в векторе

19.06.2015, 10:33. Показов 3294. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
#include <iostream>
#include <qdebug.h>
#include <vector>
using namespace std;
int main()
{
//--------------------------------------------------------------------------
 
cout <<"Введи размер вектора :";
int n=0;
cin >>n;
   vector<int>vec(n);
   for(int i=0;i<n;i++){
 cout <<"Введи"<<i+1<<"-е данные"<<":";
  cin >>vec[i];
   }
   qDebug() <<"Вот он каков, ваш вектор :";
   int min=vec[0];
   int max=vec[0];
   for(int j=0;j<n;j++)
   {
   qDebug()<<vec[j]<<"  ";
   if(min>vec[j])
   min=j;
   if(max<vec[j])
       max=j;
   }
 
qDebug() <<"\n"<<"Количество элементов в векторе "<<":"<<n<<endl;
 
cout <<"Максимальное значение :"<< max<<endl;
cout <<"Минимальное значение :"<< min<<endl;
 
 
return 0;
}
Эта конструкция вместо максимального значения выдаёт что попало, что у неё не так?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.06.2015, 10:33
Ответы с готовыми решениями:

Ошибка в поиске минимального элемента массива
program minmas; uses crt; const a=30; var arr:array of integer; i,min,n:integer; begin...

Ошибка в поиске максимального элемента массива
Здавствуйте. Написал программу для нахождения максимального элемента масссива. #include &lt;stdio.h&gt;...

Нахождение минимального и максимального значения больше нуля в векторе
Здравствуйте. Помогите пожалуйста реализовать нахождение в рандомном векторе (например, x=): -...

Казус при поиске максимального элемента массива.
Доброго времени суток, имеется программа для расчета волнового сопротивления микрополоска. В...

6
Эксперт С++
8725 / 4305 / 958
Регистрация: 15.11.2014
Сообщений: 9,752
19.06.2015, 10:40 2
да. у вас кривые руки.

лекарство:

http://rextester.com/ZAVV5912

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
#include <iostream>
#include <vector>
 
using namespace std;
int main()
{
 
    //--------------------------------------------------------------------------
 
    cout <<"Введи размер вектора :\n";
    int n=0;
    cin >>n;
    vector<int>vec(n);
    for(int i=0;i<n;i++){
        cout <<"Введи"<<i+1<<"-е данные"<<":";
        cin >>vec[i];
        cout<<'\n';
    }
    cout <<"Вот он каков, ваш вектор: ";
    int min=0;
    int max=0;
    for(int j=0;j<n;j++)
    {
        cout<<vec[j]<<" ";
        if(min>vec[j])
            min=j;
        if(max<vec[j])
            max=j;
    }
    
    cout <<"\n"<<"Количество элементов в векторе: "<<n<<endl;
 
    cout << "Максимальное значение:" << vec[max] << endl;
    cout << "Минимальное значение :" << vec[min] << endl;
 
}
0
51 / 51 / 21
Регистрация: 08.02.2013
Сообщений: 189
19.06.2015, 10:42 3
Лучший ответ Сообщение было отмечено karakadil как решение

Решение

Во - первых, что за функция qDebug()? Во - вторых, для поиска минимального/максимального элемента вектора, нужно присваивать переменным min/max элемент контейнера, а не индекс этого элемента. Возможно именно поэтому и выдает что попало, а именно индекс минимального/максимального элемента, а не сам элемент.
1
Эксперт по математике/физикеЭксперт С++
2013 / 1342 / 382
Регистрация: 16.05.2013
Сообщений: 3,463
Записей в блоге: 6
19.06.2015, 10:58 4
Лучший ответ Сообщение было отмечено karakadil как решение

Решение

Цитата Сообщение от Extrim88 Посмотреть сообщение
Во - первых, что за функция qDebug()?
Вывод отладочной информации в Qt.
Цитата Сообщение от Extrim88 Посмотреть сообщение
Во - вторых, для поиска минимального/максимального элемента вектора, нужно присваивать переменным min/max элемент контейнера, а не индекс этого элемента.
Именно так. Лечение:
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
#include <iostream>
#include <vector>
using namespace std;
int main() {
    system("chcp 1251");
    cout <<"Введи размер вектора :\n";
    int n=0;
    cin >>n;
    vector<int>vec(n);
    for(int i=0;i<n;i++){
        cout <<"Введи "<<i+1<<"-е данные"<<":";
        cin >>vec[i];
    }
    cout <<"Вот он каков, ваш вектор: ";
    int min=vec[0];
    int max=vec[0];
    for(int j=1;j<n;j++) {
        cout<<vec[j]<<" ";
        if(min>vec[j])
            min=vec[j];
        if(max<vec[j])
            max=vec[j];
    }
 
    cout <<"\n"<<"Количество элементов в векторе: "<<n<<endl;
 
    cout << "Максимальное значение:" << max << endl;
    cout << "Минимальное значение :" << min << endl;
}

Не по теме:

Цитата Сообщение от hoggy Посмотреть сообщение
лекарство:
Будь вы доктором я бы не стал у вас личиться. :)

0
0 / 0 / 0
Регистрация: 20.05.2015
Сообщений: 8
19.06.2015, 11:07  [ТС] 5
увы ваше решение тоже не работает
0
Эксперт по математике/физикеЭксперт С++
2013 / 1342 / 382
Регистрация: 16.05.2013
Сообщений: 3,463
Записей в блоге: 6
19.06.2015, 11:21 6
Приведите пример.
0
0 / 0 / 0
Регистрация: 20.05.2015
Сообщений: 8
19.06.2015, 11:41  [ТС] 7
Извините,битте, был в корне не прав, Ваше решение несомненно верное.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.06.2015, 11:41
Помогаю со студенческими работами здесь

Неполадки с индексами при поиске максимального элемента
Здравствуйте! Возникла проблема, которую пытался, но не смог решить. Задача состоит в том чтобы...

Определить значение минимального элемента в нечетных и максимального элемента в четных строках
Определить значение минимального элемента в нечетных и максимального элемента в четных строках ...

Найти среднее арифметическое до минимального элемента и после максимального элемента массива
Дан массив F(11). найти среднее арифметическое до минимального элемента и после максимального...

Вставить после максимального элемента массива значение минимального элемента
2. Дан массив А размером N.Вставить после максимального элемента значение минимального элемента.


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru