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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 28, средняя оценка - 4.93
Romiys
3 / 3 / 0
Регистрация: 27.12.2010
Сообщений: 56
#1

Наибольший элемент вектора - C++

21.04.2011, 17:16. Просмотров 5343. Ответов 9
Метки нет (Все метки)

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

#include <iostream>
#include <vector>
using namespace std;

int main()
{

vector<int>ivec2;
int num, max=0;

cout << "Enter numbers:"<<endl;

while (cin>>num)

ivec2.push_back(num);

for (vector<int>::size_type ip=0; ip!=ivec2.size()-1; ++ip)
if (ivec2[ip]>ivec2[ip+1])
max=ivec2[ip];
<<"The biggest element is : "<<max<< endl;
system("pause");
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2011, 17:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Наибольший элемент вектора (C++):

Изменение вектора. Наибольший элемент вектора - C++
Добрый день, нужна оценка кода. Пропустил занятия, делал по теории, опирался на массивы. Скажите, правильно ли реализовано? Создать...

Найти наибольший элемент вектора - C++
подскажите пожалуйста, вот у меня есть 3-ех мерный массив у меня получается есть задание найти найбольшее значение вектора, тоесть...

Определить количество положительных элементов вектора С(10) и заменить этим значением минимальный элемент вектора А(5) - C++
Ребята помогите пожалуйста с задачкой. Я сам не шарю в C++, но в этом семестре появился этот предмет! И завтра его надо будет сдать :( Буду...

Найти наибольший элемент и выбросить из матрицы строку и столбец, на пересечении которых стоит этот элемент - C++
Дан массив mxn. Найти наибольший элемент и выбросить из массива строку и столбец на пересечении которых стоит этот элемент.

Матрица. Поменять наибольший элемент и диагональный элемент - C++
Помогите пожалуйста .... Дана целочисленная квадратная матрица. Найти в каждой строке наибольший элемент и поменять его местами с...

Задана вещественная матрица размером m×n. Найти наибольший элемент. Перестановкой строк и столбцов, добиться того, чтобы данный элемент оказался в вер - C++
Задана вещественная матрица размером m×n. Найти наибольший элемент. Перестановкой строк и столбцов, добиться того, чтобы данный элемент...

9
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
21.04.2011, 17:17 #2
что пишет компилятор?
1
neske
1508 / 875 / 84
Регистрация: 26.03.2010
Сообщений: 2,988
21.04.2011, 17:26 #3
Господи, зачем же так извращаться.
C++
1
std::cout << "Max: " << *std::max_element (vec.begin(), vec.end());
А тут, сама реализация алгоритма есть: http://www.cplusplus.com/reference/algorithm/max_element/
1
Romiys
3 / 3 / 0
Регистрация: 27.12.2010
Сообщений: 56
21.04.2011, 17:31  [ТС] #4
Я пропустил команду cout, когда перемещал код в сообщение форума. Компилятор ошибок не выдаёт. Программа компилируется и работает, но неверно. Она выдаёт не самый большой элемент из вектора, а кокой-нибудь другой. Логическую ошибку обнаружить не могу, вроде всё очень просто и правильно.
0
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
21.04.2011, 17:38 #5
ответ написан выше, используйте STL с умом
0
Romiys
3 / 3 / 0
Регистрация: 27.12.2010
Сообщений: 56
21.04.2011, 17:48  [ТС] #6
При написании этой прог-мы я использовал те знания, которые имею на данный момент. До STL ещё не дошёл. Учу всё сам. И не понимаю почему нельзя правильно написать такую лёгкую программу используя только 1 цикл и условный оператор сравнения. Пока не выучу весь учебник + STL, про-гу написать невозможно?
0
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
21.04.2011, 17:54 #7
создайте обычный массив и пишите, в чем сложность? если уж взялись за использование std::vector то воспользуйтесь STL. Зачем учить STL? откройте мануал по готовым функция и пользуйтесь, что мешает?
1
prazuber
110 / 110 / 3
Регистрация: 29.04.2010
Сообщений: 240
21.04.2011, 17:58 #8
Ну учится человек, что вы так взъелись на него.

Romiys, у вас проверка неправильная. Правильно так:
C++
1
2
3
for (vector<int>::size_type ip = 0; ip < ivec2.size(); ++ip)
  if (max < ivec2[ip])
    max = ivec2[ip];
Или даже так:
C++
1
2
3
for (vector<int>::iterator it = ivec2.begin(); it != ivec2.end(); ++it)
  if (max < *it)
    max = *it;
2
Romiys
3 / 3 / 0
Регистрация: 27.12.2010
Сообщений: 56
21.04.2011, 18:11  [ТС] #9
Извиняюсь за глупый вопрос новичка, но что значит "мануал"? Названия функций вектора и их описания беру из учебников для новичков. Что есть - тем и работаю. "Мануал" - типа справки гдеть в компиляторе?

Добавлено через 10 минут
Спасибо всем за участие и внимание! Исправил прог-му , как Вы подсказали, на экран выводит, что наибольший элемент вектора 0?!

#include <iostream>
#include <vector>
using namespace std;

int main()
{

vector<int>ivec2;
int num, max=0;

cout << "Enter numbers:"<<endl;

while (cin>>num)

ivec2.push_back(num);

for (vector<int>::size_type ip=0; ip<ivec2.size(); ++ip)
if (max>ivec2[ip])
max=ivec2[ip];

cout<<"The biggest element is : "<<max<< endl;
system("pause");
return 0;
}
0
Romiys
3 / 3 / 0
Регистрация: 27.12.2010
Сообщений: 56
21.04.2011, 18:43  [ТС] #10
Всем спасибо за помощь и участие. Ошибку нашёл. Успехов в работе!
1
21.04.2011, 18:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2011, 18:43
Привет! Вот еще темы с ответами:

Наибольший элемент - C++
Надо найти самый большой элемент из двух желательно использовать подрограмму

Найти наибольший элемент матрицы - C++
Дана матрица А(5,3) 1. Найти наибольший элемент матрицы 2. В строке, содержащей максимальный элемент матрицы, подсчитать сумму для...

Найти наибольший элемент массива - C++
Помогите пожалуйста решить задачу Заранее благодарю

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


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

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

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