Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 27.08.2015
Сообщений: 4
1

Не получается посчитать значения в задаче

28.08.2015, 04:40. Показов 453. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Условие:
Плата за час = 10 $. Работник всего отработал 41 час. За первые 40 часов он получает 400 $, за последующие часы работник получает плату в полуторном размере. 1час 10 * 1.5 = 15. В итоге у нас 415 часов. Но в программе выходит 425 часа. В чем проблема?
C++
1
2
3
4
5
6
7
8
int main()
{
    int hours = 41;                // число отработанных часов
    int overtime;            
    double TotalSalary;        // зарплата
    double hourlyRate = 10;  // почасовая ставка работника
    double paymentForOvertime;
...
C++
1
2
3
4
5
overtime = hours % 40;
    paymentForOvertime = hourlyRate * 1.5 * static_cast<double>(overtime);
        TotalSalary = hours * hourlyRate + paymentForOvertime;
 
    cout << TotalSalary << endl;
Добавлено через 43 минуты
тут скорее:
C++
1
overtime = hours - 40;
Но ответ тот же.

Добавлено через 7 минут
Такие тупые ошибки.
C++
1
TotalSalary = (hours - overtime) * hourlyRate + paymentForOvertime;

Не по теме:

Как лечить невнимательность?

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

Не получается правильная сумма в задаче
Написать функцию print_and_sum_odd(some_integers), которая принимает на вход список целых чисел...

Как посчитать арифметические операции в String, требуется совет по задаче
Всем привет! Прошу помочь с решение задачки: Дана строка с набором операций. Написать метод,...

В базе данных посчитать средний балл успеваемости группы. Что неправильно в задаче?
Помогите пожалуйста! Нужно в базе данных посчитать средний балл успеваемости группы..но она не...

Нужна блок схема к задаче - посчитать сумму элементов выше главной диагонали матрицы 5х5
нужно составить блок схему к задаче: посчитать сумму элементов выше главной диагонали матрицы...

9
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
28.08.2015, 06:11 2
Цитата Сообщение от Dart Revan Посмотреть сообщение
1.5 * static_cast<double>(overtime);
static_cast писать в таком выражении излишне. Т.к. 1.5 константа типа double, то компилятор сам приведет overtime к double
0
0 / 0 / 0
Регистрация: 27.08.2015
Сообщений: 4
28.08.2015, 06:54  [ТС] 3
Цитата Сообщение от zss Посмотреть сообщение
static_cast писать в таком выражении излишне. Т.к. 1.5 константа типа double, то компилятор сам приведет overtime к double
Т.е. в этом примере он тоже не нужен? Пример из учебника:
C++
1
2
3
4
int total;
        int gradeCounter;
        int grade;      
        double average;
C++
1
average = static_cast<double>(total) / gradeCounter;
0
698 / 105 / 19
Регистрация: 22.06.2014
Сообщений: 234
28.08.2015, 07:02 4
Вот тут ошибка:
C++
1
TotalSalary = hours * hourlyRate + paymentForOvertime; // hours = 41
Попробуйте так:
C++
1
TotalSalary = (hours - paymentForOvertime) * hourlyRate + paymentForOvertime;
0
0 / 0 / 0
Регистрация: 13.07.2015
Сообщений: 1
28.08.2015, 09:50 5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
 
int main() {
    int hours = 41;
    int standartTime = 40;
    int overTime = hours - standartTime;
    double hourlyRate = 10;
    double overTimeRate = 15;
    double standartSalary = standartTime * hourlyRate;
    double overTimeSalary = overTime * overTimeRate;
    double totalSalary = standartSalary + overTimeSalary;
    cout << totalSalary << endl;
    system("pause");
    return 0;
}
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
28.08.2015, 18:52 6
Dart Revan,
Цитата Сообщение от Dart Revan Посмотреть сообщение
average = static_cast<double>(total) / gradeCounter;
В этом примере целое делится на целое. Если одно из них не привести к double, то результат будет целым.
1
MEPTPAH
28.08.2015, 19:28
  #7

Не по теме:

Цитата Сообщение от Dart Revan Посмотреть сообщение
Пример из учебника:
жечь такие

0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
29.08.2015, 08:21 8
MEPTPAH, А что по Вашему в приведенном примере не так?
0
MEPTPAH
30.08.2015, 13:03
  #9

Не по теме:

Цитата Сообщение от zss Посмотреть сообщение
А что по Вашему в приведенном примере не так?
Цитата Сообщение от zss Посмотреть сообщение
average = static_cast<double>(total) / gradeCounter;
можно ещё раз отрефокторить:
C++ (Qt)
1
average = static_cast<double>(total) / static_cast<double>(gradeCounter);
ну а чтобы глаз радовался
C++ (Qt)
1
average = (double)(static_cast<double>(total) / static_cast<double>(gradeCounter));
ну или полный хардкор
C++ (Qt)
1
average = static_cast<double>(static_cast<double>(total) / static_cast<double>(gradeCounter));

0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
30.08.2015, 21:18 10
MEPTPAH, Вы не правы. Для того, чтобы выражение правильно считалось, достаточно привести одну из переменных к double, что в обсуждаемом выражении и сделано.
2
30.08.2015, 21:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.08.2015, 21:18
Помогаю со студенческими работами здесь

Не меняются значения в задаче
Подскажите почему буквы не заменяются на цифры? program kursach; var s1:string; i1:byte; ...

Не могу разобраться в задаче, не понятны значения
Здравствуйте, подскажите пожалуйста. Задание: Сколько ядер урана-235 должно делится за время...

не получается посчитать корень
int func5 (float a, float b) { printf (&quot;\n kor a &quot;); a=sqrt(a); printf (&quot;\n kor b &quot;);...

Не получается посчитать интеграл
Здравствуйте . Нужно посчитать интеграл \int \frac{1+{x}^{2}}{1+{x}^{4}} dx Ну понятно,что...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru