Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.07.2011, 14:57   #1
ZoomHz
Пользователь
 
Аватар для ZoomHz
 
Регистрация: 25.06.2011
Сообщений: 37
По умолчанию Вычисления процента

Код:
#include <iostream>

using namespace std;

int Many(int);

int main()
{
     
 int Time;//vremya razgovora
 int OnlyMany;//Time * 2.78
 float Mannny;//stoimost' razgovora v vuhodnue
 int Skidka;//Time * 0,02 // za kajdyy minyty po 2% skidki
 int Bablo;//stoimost' razgovora po bydnyam
    cout<<"Vedite dlitel'nost' razgovora \n";
    cout<<"min ";
    cin>> Time;
    cout<< endl;
    Skidka = Time * 0,02;
    OnlyMany = Many(Time);
    //Дни
 enum Days {Monday = 1, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday};
 
  int Day;
    cout<<"Vedite Den' nedeli Monday = 1...Sunday = 7 \n";
    cout<<"day ";
    cin>> Day;
    cout<< endl;
    //ОТ 1 до 7
  switch (Day)
  {
         case 1:
         case 2:
         case 3:
         case 4:
         case 5:
   cout<<Skidka << "skidka za minyty";
   cout<<"Stoimost' razgovora: ";
   Bablo = (OnlyMany / 100) * Skidka;
   cout<< Bablo;
   cout<<" UAH \n";
         break;
         case 6:
         case 7:
         Mannny = OnlyMany * 0.5;
         cout<<"Predostovlyaetsya skidka 50% \n";
         cout<<"Stoimost' razgovora \n";
         cout<<Mannny; 
         cout<<" UAH" << endl;
         break;
         }

system ("PAUSE"); 
}

int Many (int Time)
{
      return (Time * 2.78);
      }
Я хочу сделать что бы за каждую минуту разговора (2.78 UAH) была скидка в 2%
Код:
Skidka = Time * 0,02;
Код:
Bablo = (OnlyMany / 100) * Skidka;
вот только ответ всегда 0,5145... целого числа в ответе нету
Где ошибки??
ZoomHz вне форума Ответить с цитированием
Старый 13.07.2011, 15:46   #2
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

сумма = ((время * 2.78)/100) * (100-(время-1)*2)
Это если у вас происходит все не так: минута = 100 рублей, следующая минута = 98 рублей, следующая минута = 98% от 98 рублей и т.д.
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума Ответить с цитированием
Старый 13.07.2011, 15:53   #3
ZoomHz
Пользователь
 
Аватар для ZoomHz
 
Регистрация: 25.06.2011
Сообщений: 37
По умолчанию

Цитата:
Сообщение от ImmortalAlexSan Посмотреть сообщение
сумма = ((время * 2.78)/100) * (100-(время-1)*2)
Это если у вас происходит все не так: минута = 100 рублей, следующая минута = 98 рублей, следующая минута = 98% от 98 рублей и т.д.
можете написать мне в код, мне не понятно (100-(время-1)*2)
ZoomHz вне форума Ответить с цитированием
Старый 13.07.2011, 16:08   #4
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

ZoomHz, в код не могу, потмоу что я не понимаю его
Цитата:
(100-(время-1)*2)
100% - (время разговора - 1 минута времени разговора) * 2%.
У вас ведь скидка после минуты разговора идет так? Вот и не считаем первую минуту, просто единичку вычитаем.
Для примера:
время разговора - 5 минут.
сумма = 5*2.78/100*(100-4*2) = 0.139 (это один процент от всей суммы, на которую наговорил клиент) * 92 (это проценты, которые получились со скидкой) = 12.788 (сумма со скидкой), без скидки было бы 13.9, скидка составила 8%
Понятнее теперь?
P.S. Только, кажется так нельзя считать, нужно считать за каждую минуту, иначе в итоге получится, что вы еще клиенту и должны будете
Вот так правильнее будет:
Код:
const char time = 5;
float summa = 0;
for (char minute = 1; minute<=time; minute++) {
 if (minute != 51)
  summa = summa + (2.78*(100-(minute-1)*2)/100);
 else
  break;
};
//Если нужно приведение типов сделать, сделайте сами, просто подставите перед действием (float) или (int), или любой другой тип в скобках.
"Тебе то может на меня и насрать, но твои глаза меня обожают!"

Последний раз редактировалось ImmortalAlexSan; 13.07.2011 в 16:26.
ImmortalAlexSan вне форума Ответить с цитированием
Старый 13.07.2011, 16:57   #5
ZoomHz
Пользователь
 
Аватар для ZoomHz
 
Регистрация: 25.06.2011
Сообщений: 37
По умолчанию

Спасибо за помощь разобрался
ZoomHz вне форума Ответить с цитированием
Старый 13.07.2011, 17:08   #6
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

Пожалуйста
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычисления процента ZoomHz Общие вопросы C/C++ 5 13.07.2011 20:37
как отобразить любое значение процента в ячейке, но не более 100% karyshkin Microsoft Office Excel 4 15.05.2011 14:54
Добавление процента к числу foxx77 Microsoft Office Excel 2 12.02.2010 19:29
Проблема с определением процента загрузки процессора Jogik_86 Помощь студентам 0 17.12.2009 03:28
вычисления Александр8585 Microsoft Office Excel 8 16.09.2008 15:22