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

Вывести сумму всех покупок и сумарную скидку

24.05.2021, 08:23. Показов 915. Ответов 1

Студворк — интернет-сервис помощи студентам
Попросили решить простую задачу: в магазине предоставляется скидка 30% на каждый второй товар дороже 200, порядок покупок определяет сам магазин. Вывести сумму всех покупок и сумарную скидку. Чтение из файла DP2.txt первая строка - количество товаров.
Написал код, но выводится столбец рандомных чисел.
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <fstream>
#include <iostream>
#include <string>
#include <algorithm>
#include <cstdlib>
#include <vector>
using namespace std;
int main(){
    ifstream fin;
    fin.open("D:\\Documents\\Desktop\\Dev-Cpp\\DP2.txt");// открываем поток
    int a,b,c;
    int s=0;
    int skid=0;
    fin >> a;                        // считываем кол-во товаров
    int i;
    vector <int> tovar;             // создаём вектор
    for(i=0;i<a;i++){
        //fin >> tovar[i];
        fin>>b;
        tovar.push_back(b);          // заполним вектор
        s=s+b;                      // найдём сумму
    }
    sort(tovar.begin(),tovar.end());//сортируем вектор по возрастанию
    for(i=0;i<a;i++){
        if(tovar[i]>200){           // находим позицию чисел больше 200
            b=i;
            i=a;
        }
    }
    c=a-((a-b)/2);                  // отсекаем самые дорогие товары 
    for(i=b;i<c;i++){
        s=s-tovar[i];               // вычитаем из суммы скидочные товары
        s=s+(tovar[i]/10*7);          // прибавляем 70% от их стоимости
        skid=skid+(tovar[i]/10*3);    // ищем скидку
    }
    cout <<"sum "<<s<<"  skidka "<<skid;//выводим результаты
 
}
Буду признателен если найдёте ошибку.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.05.2021, 08:23
Ответы с готовыми решениями:

Посчитать и вывести в форму сумму и скидку
вывожу значения &lt;div id=&quot;symbols&quot;&gt;количество символов в объявлении&lt;/div&gt; &lt;div id=&quot;price&quot;&gt;Вывести значение - стоимость одной...

Как исправить код, чтобы выводило скидку на 5% и 10% скидку
Вообщем, не могу сообразить как исправить код, чтобы выводило скидку на 5% и 10% скидку. На 5% выводит верно, а когда вводишь сумму по...

Как вычислить и вывести цену TextBox1 на введенную скидку в TextBox2 и вывести итог в TextBox3?
Т.е. допустим у меня есть TextBox1 с числом - N, и есть TextBox2 в который я ввожу скидку, И после ввода скидки вычислялось выводилось...

1
Just Do It!
 Аватар для XLAT
4211 / 2670 / 655
Регистрация: 23.09.2014
Сообщений: 9,083
Записей в блоге: 3
24.05.2021, 12:11
Nikolaybow,
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
25
26
#include <string>
#include <iostream>
#include <fstream>
 
int main()
{   setlocale(0,"");
 
    std::ifstream f("DP2.txt");
    if(f)
    {   int n; f >> n;
        float sum = 0,
              bon = 0, a;
 
        for(int cnt = 1; f >> a; )
        {   sum += a;
            if(a > 200.f && (cnt ^= 1)) bon += a * 0.3f;
        }
        
        std::cout << "К оплате: " << sum - bon << '\n'
                  << "Скидка  : " <<       bon << '\n';
    }
    else std::cout << "ERROR FILE\n";
 
    std::cin.get();
    return 0;
}
Входной файл "DP2.txt"
Code
1
2
3
300 10 1000
Результат:
Code
1
2
К оплате: 1010
Скидка  : 300
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.05.2021, 12:11
Помогаю со студенческими работами здесь

Массивы: вывести сумму всех четных/всех нечетных элементов массива
Задание: Пользователь вводит 5 чисел в массив из 5 элементов. Вывести сумму всех четных чисел. А потом всех нечетных. Есть код:...

Вычисление общей стоимости всех покупок
Вы посетили магазин и купили 10 видов товара. В таблицу T вы записали количество купленного товара каждого вида. В таблицу C записали цены...

Вывести в том же порядке целые части всех чисел из данного набора, а также сумму всех целых частей.
Дан массив из N положительных действительных чисел. Вывести в том же порядке целые части всех чисел из данного набора (как вещественные...

Обойти всех подпапки для заданного пути, найти сумму размеров всех файлов и вывести ее по папкам и суммарно
Для заданной папки(с клавиатуры) сделать обход всех подпапок, найти сумму размеров всех файлов и вывести ее по папкам и суммарно.

Посчитать сумму всех чётных чисел от 0 до 100 и вывести сумму на экран
Посчитать сумму всех чётных чисел от 0 до 100 и вывести сумму на экран. c#


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru