Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdio.h"
- #include "locale.h"
- // ввод данных, передаем адресса данных
- void inputData(float* sum, int* mms, int* sms, int* time) {
- // делаем первый ввод и проверяем введены ли корректно данные, если некорректно, то вводим заново
- do {
- printf("Введите баланс:\n");
- scanf_s("%f", sum);
- if (*sum < 0)
- printf("Неверный ввод данных. Повторите ввод.\n");
- } while (*sum < 0);
- do {
- printf("Введите кол-во mms:\n");
- scanf_s("%d", mms);
- if (*mms < 0)
- printf("Неверный ввод данных. Повторите ввод.\n");
- } while (*mms < 0);
- do {
- printf("Введите кол-во sms:\n");
- scanf_s("%d", sms);
- if (*sms < 0)
- printf("Неверный ввод данных. Повторите ввод.\n");
- } while (*sms < 0);
- do {
- printf("Введите кол-во минут:\n");
- scanf_s("%d", time);
- if (*time < 0)
- printf("Неверный ввод данных. Повторите ввод.\n");
- } while (*time < 0);
- }
- // находим расход услуг за месяц
- float calculateCharges(int mms, int sms, int time) {
- return -(mms * 2.5 + sms * 0.2 + time * 0.15);
- }
- // кол-во бонусов
- int bonusMustBeAdded(float psum, int mms, int sms, int time) {
- float bonus = 0; // сумма бонусов
- int f = 0; // считаем кол-во выполненых условий
- if (psum > 200) { bonus = bonus + 200 * 0.05; }
- if (mms > 10) { f++; }
- if (sms > 50) { f++; }
- if (time > 100) { f++; }
- if (f > 1) { bonus = bonus + 150; }
- return bonus;
- }
- // сложение атрибутов
- float calculateTotals(float a, float b) {
- return a + b;
- }
- // печать таблицы
- void printTable(int sms1, int mms1, int time1,
- int sms2, int mms2, int time2,
- int sms3, int mms3, int time3,
- float sum1, float sum2, float sum3,
- float psum1, float psum2, float psum3,
- float balans1, float balans2, float balans3) {
- printf("\n№\tИсходно\tMMS\tSMS\tМинут\tОстаток\tОстаток+премии\n");
- printf("1\t%.2f\t%d\t%d\t%d\t%.2f\t%.2f\n", sum1, mms1, sms1, time1, psum1, balans1);
- printf("2\t%.2f\t%d\t%d\t%d\t%.2f\t%.2f\n", sum2, mms2, sms2, time2, psum2, balans2);
- printf("3\t%.2f\t%d\t%d\t%d\t%.2f\t%.2f\n", sum3, mms3, sms3, time3, psum3, balans3);
- printf("Сред:\t%.2f\t%.0f\t%.0f\t%.0f\t%.2f\t%.2f\t\n", (sum1 + sum2 + sum3) / 3.0, (mms1 + mms2 + mms3) / 3.0, (sms1 + sms2 + sms3) / 3.0, (time1 + time2 + time3) / 3.0, (psum1 + psum2 + psum3) / 3.0, (balans1 + balans2 + balans3) / 3.0);
- }
- void main() {
- // подключение руссого языка
- setlocale(LC_ALL, "rus");
- // смс, ммс, время розговра, баланс, остаток баланса, остаток + премия, расход за месяц
- int mms1, sms1, time1,
- mms2, sms2, time2,
- mms3, sms3, time3;
- float sum1, sum2, sum3,
- psum1, psum2, psum3,
- balans1, balans2, balans3,
- ras1, ras2, ras3;
- // ввод данных
- inputData(&sum1, &mms1, &sms1, &time1);
- inputData(&sum2, &mms2, &sms2, &time2);
- inputData(&sum3, &mms3, &sms3, &time3);
- // считаем расходы
- ras1 = calculateCharges(mms1, sms1, time1);
- ras2 = calculateCharges(mms2, sms2, time2);
- ras3 = calculateCharges(mms3, sms3, time3);
- // считаем остаток
- psum1 = calculateTotals(sum1, ras1);
- psum2 = calculateTotals(sum2, ras2);
- psum3 = calculateTotals(sum3, ras3);
- // находим премии + остаток
- balans1 = calculateTotals(psum1, bonusMustBeAdded(psum1, mms1, sms1, time1));
- balans2 = calculateTotals(psum2, bonusMustBeAdded(psum2, mms2, sms2, time2));
- balans3 = calculateTotals(psum3, bonusMustBeAdded(psum3, mms3, sms3, time3));
- // передаем данные на таблицу
- printTable(sms1, mms1, time1,
- sms2, mms2, time2,
- sms3, mms3, time3,
- sum1, sum2, sum3,
- psum1, psum2, psum3,
- balans1, balans2, balans3);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement