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

Непонятное значение - C++

Восстановить пароль Регистрация
 
gnuvse
6 / 6 / 1
Регистрация: 09.11.2011
Сообщений: 101
29.03.2012, 12:02     Непонятное значение #1
Доброго времени суток.

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

Проблема: Скомпилируйте код и увидите (не могу объяснить)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <vector>
 
using namespace std;
 
int main()
{
    unsigned int num = 0, i;
    vector <int> v;
    
    while (cin >> num) {
        v.push_back(num);
        for (i = 0; i < v.size(); i++) {
            if (v[i] > v[i-1])
                cout << v[i] << " > " << v[i-1] << "\n";
            else
                cout << v[i-1] << " > " << v[i] << "\n";
        }
    }
    
    return 0;       
}
ЗЫ. Сильно не пинайте, если не грамотно написал, только учусь
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2012, 12:02     Непонятное значение
Посмотрите здесь:

C++ Непонятное задание
C++ непонятное строка?
непонятное строка? C++
C++ Непонятное выражение
Непонятное условие C++
C++ Непонятное объявление в классе
Непонятное поведение C++
Непонятное значение в переменной при сложении C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Duha666
50 / 50 / 5
Регистрация: 10.03.2012
Сообщений: 138
29.03.2012, 12:25     Непонятное значение #2
i от нуля. А вы ещё берете i - 1. В этом и проблема
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <vector>
 
using namespace std;
 
int main()
{
        unsigned int num = 0, i;
        vector <int> v;
        
        while (cin >> num) {
                v.push_back(num);
                for (i = 1; i < v.size(); i++) {
                        if (v[i] > v[i-1])
                                cout << v[i] << " > " << v[i-1] << "\n";
                        else
                                cout << v[i-1] << " > " << v[i] << "\n";
                }
        }
        
        return 0;               
}
gnuvse
6 / 6 / 1
Регистрация: 09.11.2011
Сообщений: 101
29.03.2012, 17:58  [ТС]     Непонятное значение #3
Цитата Сообщение от Duha666 Посмотреть сообщение
i от нуля. А вы ещё берете i - 1. В этом и проблема
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <vector>
 
using namespace std;
 
int main()
{
        unsigned int num = 0, i;
        vector <int> v;
        
        while (cin >> num) {
                v.push_back(num);
                for (i = 1; i < v.size(); i++) {
                        if (v[i] > v[i-1])
                                cout << v[i] << " > " << v[i-1] << "\n";
                        else
                                cout << v[i-1] << " > " << v[i] << "\n";
                }
        }
        
        return 0;               
}
Супер, спасибо Вам
Yandex
Объявления
29.03.2012, 17:58     Непонятное значение
Ответ Создать тему
Опции темы

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