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

Выражение с математическими операторами - C++

Восстановить пароль Регистрация
 
coreshok
3 / 3 / 0
Регистрация: 23.12.2011
Сообщений: 55
21.08.2012, 19:57     Выражение с математическими операторами #1
Доброго времени всем!Решаю задачки по С++ и у меня возник простой вопрос вот в этом алгоритме.Я его составил сам по условию задачи. Может немного коряво( можно без констант, без логических операторов и т.д)просто мне так захотелось, но суть ни в этом.Я по поводу выражения < sr=(stmin*min)-(sk/100*skidka);>.Почему оно не работает?А вот так < sk=(stmin*min);
sr=sk-(k/100*skidka);>работает.Обучаюсь самостоятельно, спросить не у кого кроме вас.С уважением!

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
#include <iostream>
using namespace std;
const int skidka=20;
const float stmin=5;
int main()
{
    float sr,sk;
    int min,day;
    cout <<"Vvedite kolichestvo min."<<endl;
    cin >>min;
    cout <<"Dni nedeli(1-ponedelnik,...7-voskresenie)"<<endl;
    cin >>day;
 
    if(day>=6&&day<=7)
    {
     cout <<"U vas skidka 20%!" <<endl;
      sk=(stmin*min);
     sr=sk-(sk/100*skidka);
     cout <<"Stoimost razgovora= " <<sr <<" rub"<<endl;
    }
    if(day<1||day>7)
    cout <<"Takih dnei nideli net";
   return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.08.2012, 19:57     Выражение с математическими операторами
Посмотрите здесь:

Задания с операторами выбора C++
Задания с операторами C++
Работа с битовыми операторами C++
C++ Проблема с операторами
помогите с операторами while и for C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6171 / 2900 / 283
Регистрация: 04.12.2011
Сообщений: 7,710
Записей в блоге: 3
21.08.2012, 20:09     Выражение с математическими операторами #2
C++
1
2
3
4
int skidka=20;
//**************
sk=(stmin*min);
sr=sk-(sk/100*skidka);
может так лучше:
C++
1
2
3
4
можно:
float skidka=20;//лучше = 0,2 тогда и делить не нужно будет.
//*******************
sr=stmin*min(1-skidka/100); //если int skidka  ноль при делении skidka/100
coreshok
3 / 3 / 0
Регистрация: 23.12.2011
Сообщений: 55
21.08.2012, 20:40  [ТС]     Выражение с математическими операторами #3
Благодарю!Но дело не в разнообразии вариантов написания этого выражения, а в том почему первая конструкция выдает то, что в первом файле, а во втором выражение работает.Может, что в компиляторе подкрутить? Или само выражение с точки зрения компилятора не корректно?

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
#include <iostream>
using namespace std;
const int skidka=20;
const float stmin=5;
int main()
{
    float sr,sk;
    int min,day;
    cout <<"Vvedite kolichestvo min."<<endl;
    cin >>min;
    cout <<"Dni nedeli(1-ponedelnik,...7-voskresenie)"<<endl;
    cin >>day;
 
    if(day>=6&&day<=7)
    {
     cout <<"U vas skidka 20%!" <<endl;
    //sk=(stmin*min);
     sr=(stmin*min)-(sk/100*skidka);
     cout <<"Stoimost razgovora= " <<sr <<" rub"<<endl;
    }
    if(day<1||day>7)
    cout <<"Takih dnei nideli net";
   return 0;
}
Миниатюры
Выражение с математическими операторами   Выражение с математическими операторами  
ValeryS
Модератор
6376 / 4842 / 442
Регистрация: 14.02.2011
Сообщений: 16,045
21.08.2012, 21:02     Выражение с математическими операторами #4
Цитата Сообщение от coreshok Посмотреть сообщение
Может немного коряво
да уж немножко
А стоимость разговора с понедельника по пятницу?
Цитата Сообщение от coreshok Посмотреть сообщение
Я по поводу выражения
C++
1
sr=(stmin*min)-(sk/100*skidka);
.
Цитата Сообщение от coreshok Посмотреть сообщение
Почему оно не работает?
а sk чему равно???


Цитата Сообщение от coreshok Посмотреть сообщение
А вот так
C++
1
2
sk=(stmin*min);
 sr=sk-(sk/100*skidka);
работает
а здесь sk ты уже подсчитал перед тем как использовать
coreshok
3 / 3 / 0
Регистрация: 23.12.2011
Сообщений: 55
21.08.2012, 21:33  [ТС]     Выражение с математическими операторами #5
да уж немножко
А стоимость разговора с понедельника по пятницу?
Написать программу вычисления стоимости разговора по
телефону с учетом 20% скидки, предоставляемой по субботам и
воскресеньям
Теска, не заморачивайся по поводу корявого написания всего алгоритма.Я их просто за день много на штамповал и имена для переменных уже не могу придумать по смыслу,так пишу просто набором символов.Самому понятно и ладно. Ошибку я увидел.Такая простая епсель-мопсель.Ты прав, переменной sk не присвоил значение перед использованием.Тогда уж так надо было писать sr=(stmin*min)-((stmin*min)/100*skidka);
Intel~lect
 Аватар для Intel~lect
135 / 124 / 2
Регистрация: 03.07.2012
Сообщений: 355
21.08.2012, 21:40     Выражение с математическими операторами #6
coreshok, Если день от 1 до 5, то программа ничего не будет показывать. У вас есть условие на проверку дня 6 и 7, еще меньше 1 и больше 7, а вот от 1 до 5 пусто
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.08.2012, 21:51     Выражение с математическими операторами
Еще ссылки по теме:

Работа с операторами условия C++
Задания с операторами C++
Функция с условными операторами C++

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

Или воспользуйтесь поиском по форуму:
coreshok
3 / 3 / 0
Регистрация: 23.12.2011
Сообщений: 55
21.08.2012, 21:51  [ТС]     Выражение с математическими операторами #7
Да заодно и просто пообщался

Добавлено через 6 минут
Уважаемый, в условии задачи про дни 1-5 ни чего не сказано,а это оператор if(day<1||day>7)
cout <<"Takih dnei nideli net";,я уже сам дописал.
Yandex
Объявления
21.08.2012, 21:51     Выражение с математическими операторами
Ответ Создать тему
Опции темы

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