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

Не могу понять, почему программа неправильно работает!

05.08.2015, 18:46. Показов 1370. Ответов 5
Метки нет (Все метки)

Изучаю С++ по Страуструпу Б. - Программирование. Принципы и практика использования C++. Есть задание:
9. Вычислите сумму введенных значений (помимо наименьшего и наибольшего) и определите их количество. Когда цикл закончится, выведите на экран наименьшее значение, наибольшее значение, количество значений и их сумму. Обратите внимание на то, что накапливая сумму, вы должны выбрать единицу измерения (используйте метры).
10. Сохраните все введенные значения (преобразованные в метры) в векторе и выведите их на экран.
11. Перед тем как вывести значения из вектора, отсортируйте их в возрастающем порядке.
Что я делаю не так?
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"std_lib_facilities.h"
int main()
{
    double i = 0, max = 0, min = 0;
    char unit = 'a';
    bool first = true;
    while (cin >> i>>unit) {
        switch (unit) {
        case'c':
            cout << i << " cm = " << i / 100 << " m" << '\t' << i / 2.54 << " in" << '\t' << i / 30.48 << " ft" << endl;
            break;
        case'm':
            cout << i << " m = " << 100 * i << " cm" << '\t' << i / 0.0254 << " in" << '\t' << i / 0.3048 << " ft" << endl;
            break;
        default:
            cout << "lalala" << endl;
            break;
        }
        if (first) {
            first = false;
            max = i;
            min = i;
        } else {
            if (i > max) {
                max = i;
                cout << "Max = " << max << endl;
            } else if(i<min) {
                min = i;
                cout << "Min = " << min << endl;
            }
        }
        vector<double> tratata;
        tratata.push_back(i);
        double sum = 0;
        for (int j = 0; j < tratata.size(); ++j)
            sum += tratata[j];
        cout << "min= " << min << '\t' << "max= " << max << '\t' << tratata.size() << '\t' << "sum=" << sum << unit << endl;
    }
    
    system("pause");
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.08.2015, 18:46
Ответы с готовыми решениями:

не могу понять почему не работает программа
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;clocale&gt; #include &lt;cmath&gt; using namespace std;...

Не могу понять почему не работает программа
int f,x,a,b,c; cin&gt;&gt;x; if (x&gt;0) {f=pow(-x,4); cout&lt;&lt;f;} else {f=x+92; cout&lt;&lt;f;} if...

Не могу понять почему программа работает не правильно!
Задание: Программа находит в строке 1 символ который не входит во 2 заданную строку. Помогите...

Не могу понять почему программа работает некорректно (односвязные списки)
Построить однонаправленный список чисел. Затем исключить из него все повторы чисел, оставить каждое...

5
Заблокирован
05.08.2015, 19:35 2
C++
1
2
3
4
5
vector<double> tratata;
//до 
while (cin >> i>>unit) {
//внутри
tratata.push_back(i);
0
0 / 0 / 0
Регистрация: 05.08.2015
Сообщений: 2
05.08.2015, 20:01  [ТС] 3
Спасибо большое! Долго просидел, чтобы понять, но сам не осилил.
0
24 / 24 / 7
Регистрация: 25.04.2013
Сообщений: 195
05.08.2015, 22:05 4
Цитата Сообщение от RaisonDaitre Посмотреть сообщение
Изучаю С++ по Страуструпу Б. - Программирование. Принципы и практика использования C++. Есть задание:
не люблю выполнять задания они не дают ответ на то, зачем ты этот кусок кода сделал. мотивации нет. что он тебе дал, как ты его будешь в "своем будущем коде" использовать?
0
2644 / 2220 / 239
Регистрация: 03.07.2012
Сообщений: 8,064
Записей в блоге: 1
05.08.2015, 22:15 5
Кусок кода вряд ли, а вот знания и понимание, полученные при написании и разборе кода - будешь. Или не будешь (но тогда нужно искать либо другой учебник либо другой язык). Музыканту надо играть, художнику надо рисовать, спортсмену - бегать, а программисту надо писать код. Смотреть, как это делают другие - недостаточно.
2
24 / 24 / 7
Регистрация: 25.04.2013
Сообщений: 195
05.08.2015, 22:29 6
Цитата Сообщение от zer0mail Посмотреть сообщение
Музыканту надо играть, художнику надо рисовать, спортсмену - бегать, а программисту надо писать код. Смотреть, как это делают другие - недостаточно.
Вот вот, лучше свой кривой и не рабочий чем, чужой и рабочий.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.08.2015, 22:29
Помогаю со студенческими работами здесь

Не могу понять, почему программа работает неправильно( Знаю, что где-то ошибки, но не могу найти
{Ввести последовательность натуральных чисел Aj j=1...n (n&lt;=1000). Упорядочить последовательность...

Не работает простенькая программа. Не могу понять почему
Код программы: public class Calculate { public static void main(String args) { int...

Не могу понять почему программа не выводит результат (простейшая программа)
Здравствуйте уважаемые форумчане! Я начал изучать C++ при помощи книги. На днях я столкнулся со...

Не работает изменение, не могу понять почему, Update не работает, ошибку выдает
Помогите, изменение с помощью button string u =...

Не могу понять почему не работает (или правильно не работает)
#include &lt;iostream.h&gt; #include &lt;conio.h&gt; #define N 5 #define M 3 void main() { int a; ...

Не могу понять почему не работает
#include &lt;iostream.h&gt; void main() {int a; int i,min,k; i=1; do { cout&lt;&lt;&quot;A=&quot;; cin &gt;&gt; a;...


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

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

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