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

цикл case. Подсчет каллорий - C++

Восстановить пароль Регистрация
 
pashkent83
Сообщений: n/a
20.11.2012, 15:33     цикл case. Подсчет каллорий #1
Здравствуйте!! Я чего то не пойму...почему неправильно мне сумму выводит???
Assembler
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include <iostream>
 
 using namespace std;
 
 
 
 int main()
 
{
 
     int a, k, Sum;
 
 
 
 
 
  Sum = 0; k = 0;
 
 
 
 
 
 
 
     while (a !=0)
 
     {
 
          cout << "VVedite product"  << endl;
 
          cout << "Apple - 1"  << endl;
 
          cout << "Cookies - 2"  << endl;
 
          cout << "Chokolate - 3"  << endl;
 
          cout << "Exit - 0"  << endl;
 
          cin  >> a;
 
 
 
            switch(a)
 
 
 
             {
 
                 case 1:
 
                 cout << "kal =  100" << endl;
 
                 k = 100;
 
               break;
 
 
 
               case 2:
 
                 cout << "kal =  300" << endl;
 
                 k = 300;
 
               break;
 
 
 
               case 3:
 
                 cout << "kal =  500" << endl;
 
                 k = 500;
 
               break;
 
 
 
               default:
 
               cout << "ERROR" << endl;
 
               break;
 
             }
 
 
 
                  Sum = Sum + k;
 
 
 
     }
 
 
 
 
 
      cout << "Summa kallori = " << Sum << endl;
 
 
 
        return 0;
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2012, 15:33     цикл case. Подсчет каллорий
Посмотрите здесь:

Case C++
Case C++
C++ If и case
C++ switch-case, как писать в самом case
C++ в case 7 - нужно сделать поиск по номеру группы, а в case 6 сортировку по имени
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
LineStown
 Аватар для LineStown
63 / 63 / 3
Регистрация: 04.08.2010
Сообщений: 399
20.11.2012, 15:42     цикл case. Подсчет каллорий #2
После суммирования
C++
1
Sum = Sum + k;
поставить
C++
1
k=0;
Добавлено через 51 секунду
а еще лучше вместо
C++
1
k=500;
писать
C++
1
sum+=500;
и убрать ненужную переменную k
pashkent83
Сообщений: n/a
20.11.2012, 16:05     цикл case. Подсчет каллорий #3
Спасибо, большое! Заработало! А почему он на к = 0, которое в начале стоит не брал??

Добавлено через 5 минут
Спасибо Большое! Заработало! А почему он не обнулял в начале программы, когда к=0??
margarin
 Аватар для margarin
35 / 35 / 0
Регистрация: 02.06.2012
Сообщений: 332
20.11.2012, 16:11     цикл case. Подсчет каллорий #4
Цитата Сообщение от pashkent83 Посмотреть сообщение
А почему он не обнулял в начале программы, когда к=0??
попробуйте так:
C++
1
2
3
int a, k, Sum;
Sum = 0;
k = 0;
А по мне, лучше инициализировать во время объявления:
C++
1
int a, k=0, Sum=0;
Или я вопрос не понял?
WhiteP
605 / 203 / 23
Регистрация: 20.11.2012
Сообщений: 419
20.11.2012, 16:14     цикл case. Подсчет каллорий #5
Цитата Сообщение от pashkent83 Посмотреть сообщение
А почему он не обнулял в начале программы, когда к=0??
Значение k обнулялось, но вне тела цикла, а потому только единственный раз в самом начале.

И значение переменной a нужно сделать равным чему-либо, т.к. в данном виде цикл выполняется по счастливой случайности.

margarin,
Если сделать int a=0, k=0, Sum=0, то цикл не выполнится ни разу
LineStown
 Аватар для LineStown
63 / 63 / 3
Регистрация: 04.08.2010
Сообщений: 399
20.11.2012, 16:15     цикл case. Подсчет каллорий #6
Цитата Сообщение от pashkent83 Посмотреть сообщение
Спасибо, большое! Заработало! А почему он на к = 0, которое в начале стоит не брал??

Добавлено через 5 минут
Спасибо Большое! Заработало! А почему он не обнулял в начале программы, когда к=0??
потому что k обнулялось 1 раз, а нужно каждую итерацию цикла.
margarin
20.11.2012, 16:25     цикл case. Подсчет каллорий
  #7

Не по теме:

Цитата Сообщение от WhiteP Посмотреть сообщение
Если сделать int a=0, k=0, Sum=0, то цикл не выполнится ни разу
да я на автомате написал, потом исправил)

Yandex
Объявления
20.11.2012, 16:25     цикл case. Подсчет каллорий
Ответ Создать тему
Опции темы

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