Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 2
Регистрация: 29.01.2013
Сообщений: 78
1

Не считает переменную

27.03.2013, 01:56. Показов 675. Ответов 9
Метки нет (Все метки)

Почему не считает переменную St ?
При вводе любых значений она равняется 0
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int a;
int b;
cin>>a;
cin>>b;
int h=b;
int at=a/3;
int bt=b/5;
int S=a*b;
int St=at*bt/2*h;
int S1=S-St;
cout<<S<<endl;
cout<<St<<endl;
 
cout<<S1;
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.03.2013, 01:56
Ответы с готовыми решениями:

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

Записать день в переменную d,месяц в переменную m, год в переменную y
Как можно получить системную дату? Мне надо записать день в переменную d,месяц в переменную m, год...

Процедура, записывающая в переменную X минимальное из значений X и Y, а в переменную Y – максимальное
Описать процедуру Minmax(X, Y), записывающую в переменную X минимальное из значений X и Y, а в...

Не считает переменную sum
Не считает переменную sum, понятия не имею в чем ошибка. Помогите, пожалуйста static void...

9
3382 / 2741 / 748
Регистрация: 25.03.2012
Сообщений: 9,915
Записей в блоге: 1
27.03.2013, 02:08 2
a=6
b=5
S=30
St=5
S1=25
какие-то проблемы? Может ты забыл, что всё деление целочисленное и вводил числа меньше 6 и 5
1
алкокодер
156 / 152 / 41
Регистрация: 27.12.2012
Сообщений: 550
27.03.2013, 02:12 3
Chymardos, считает
1
Миниатюры
Не считает переменную  
2 / 2 / 0
Регистрация: 06.10.2012
Сообщений: 44
27.03.2013, 02:14 4
проблема вашей задачи, заключается в том, что вы задали все переменные как целочисленные. И так получается, что при выполнении определенных действий, таких как деление в формуле at или bt, числа могут получится дробные, а в вашей программе это не учтено. Условно говоря - поделив 3 на 2, мы не получим 1.
Просто поменяйте типы числовых данных в некоторых переменных и будет вам счастье. переделывать код не буду, так как надеюсь вы сами это сможете сделать=)

Добавлено через 1 минуту
UnsKneD, ну вам повезло, просто вы ввели подходящие цифры=)
1
131 / 108 / 12
Регистрация: 04.12.2010
Сообщений: 313
27.03.2013, 02:15 5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int a;
int b;
cin>>a;
cin>>b;
int h=b;
float at=a/3.;
float bt=b/5.;
float S=a*b;
float St=at*bt/2*h;
float S1=S-St;
cout<<S<<endl;
cout<<St<<endl;
 
cout<<S1;
1
ну и долго меня небыло...
61 / 57 / 8
Регистрация: 24.03.2013
Сообщений: 173
27.03.2013, 02:15 6
Попробуй float или double вместо int
Тогда все считатся будет правильно.
0
2 / 2 / 0
Регистрация: 06.10.2012
Сообщений: 44
27.03.2013, 02:19 7
Цитата Сообщение от Алексaндр Посмотреть сообщение
C++
1
float S=a*b;
а зачем здесь флоат? при умножении чисел мы в любом случае получим целочисленное, если у нас а и b тоже заданы как целочисленные. Или я что-то провтыкал?
0
ну и долго меня небыло...
61 / 57 / 8
Регистрация: 24.03.2013
Сообщений: 173
27.03.2013, 02:19 8
Упс... Александр опередил меня на несколько секунд, и даже реализовал идею)
0
алкокодер
156 / 152 / 41
Регистрация: 27.12.2012
Сообщений: 550
27.03.2013, 02:43 9
Цитата Сообщение от Рейвол Посмотреть сообщение
UnsKneD, ну вам повезло, просто вы ввели подходящие цифры=)
Ну я сразу понял почему выдаст 0, и надеялся подтолкнуть ТС к правильному выводу.
0
131 / 108 / 12
Регистрация: 04.12.2010
Сообщений: 313
27.03.2013, 02:46 10
Цитата Сообщение от Рейвол Посмотреть сообщение
а зачем здесь флоат? при умножении чисел мы в любом случае получим целочисленное, если у нас а и b тоже заданы как целочисленные. Или я что-то провтыкал?
Я заметил это при отправлении, не переживай ) Просто мне привычнее, что если площадь, то может быть нецелая, поэтому по привычке написал, а править не стал.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.03.2013, 02:46

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Запрос считает итоговую сумму по договору выполненных разных услуг, но повторяющиеся не считает
Есть запрос procedure TForm7.Button2Click(Sender: TObject); var i:integer; begin...

Mathcad слишком долго считает. Считает ли?
Уважаемые форумчане, есть вопрос: Задал считать символьное дифференцирование очень сложной...

Можно ли преобразать переменную bool в переменную int, short. И переменную string в переменную short, int и
И переменную string в переменную short, int и т.д.

Описать процедуру Minmax(A,B), записывающую в переменную A мин. из значений A и B, а в переменную B - макс.
Описать процедуру Minmax(A,B), записывающую в переменную A минимальное из значений A и B, а в...


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

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

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