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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2016, 16:23   #1
Vladkp
Пользователь
 
Регистрация: 05.10.2016
Сообщений: 24
По умолчанию Вывести товары с ценой выше средней

Помогите что дописать чтоб вывести товары с ценой выше средней?


Код:
#include <iostream>
#include <string>
#include <conio.h>
 
using namespace std;
 
struct CANDY
{
    string NAME;
    int date;
    int amount;
    float price;
    char candymaker;
}
 
; void main()
    {
        setlocale(LC_ALL, "rus");
        int n;
        cout << "Введите кол-во конфет: ";
        cin >> n;
        CANDY candies[100];
        //ВВОД МАССИВА СТРУКТУР
 
        for (int i = 0; i < n; i++)
        {
            cout << "Введите название конфет " <<
                "под номером " << i + 1 << " : ";
            cin >> candies[i].NAME;
            cout << "Введите цену для конфет " <<
                candies[i].NAME << " : ";
            cin >> candies[i].price;
            cout << "Введите дату поступления на склад " <<
                candies[i].NAME << " : ";
            cin >> candies[i].date;
            cout << "Введите производителя " <<
                candies[i].NAME << " : ";
            cin >> candies[i].candymaker;
            cout << "Введите количество конфет " <<
                candies[i].NAME << " : ";
            cin >> candies[i].amount;
 
            for (int j = 0; j < 0; j++)
            {
                cin >> candies[i].amount;
            }
        }
        //ВЫВОД МАССИВА СТРУКТУР
        for (int i = 0; i < n; i++)
        {
            cout << candies[i].NAME << " " << candies[i].price << " ";
            for (int j = 0; j < 0; j++)
            {
                cout << candies[i].amount << " ";
            }
            cout << "\n\n";
        }
        //НАХОЖДЕНИЕ СРЕДНЕЙ ЦЕНЫ
        int sum = 0;
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < 0; j++)
            {
                sum += candies[i].amount;
            }
            candies[i].price = sum / candies[i].amount;
            sum = 0;
        }
        //ВЫВОД ТОВАРА СО СРЕДНЕЙ ЦЕНОЙ
        bool flag = true;
        cout << "ВЫВОД ТОВАРОВ С ЦЕНОЙ ВЫШЕ СРЕДНЕЙ:\n";
        for (int i = 0; i < n; i++)
        {
            if (candies[i].price > 9999)
            {
                flag = false;
                cout << "\nName: " << candies[i].NAME;
            
            }
        }
        

        system("pause");
 
    }
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 22.12.2016 в 17:09.
Vladkp вне форума Ответить с цитированием
Старый 22.12.2016, 17:17   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

это выкинуть:

Цитата:
Сообщение от Vladkp Посмотреть сообщение
Код:
for (int j = 0; j < 0; j++)
            {
                cin >> candies[i].amount;
            }

Цитата:
Сообщение от Vladkp Посмотреть сообщение
Код:
for (int j = 0; j < 0; j++)
            {
                cout << candies[i].amount << " ";
            }


Цитата:
Сообщение от Vladkp Посмотреть сообщение
Код:
for (int j = 0; j < 0; j++)
            {
                sum += candies[i].amount;
            }
средняя цена - это отношение суммы всех цен к количеству.

т.е.
Код:
 //НАХОЖДЕНИЕ СРЕДНЕЙ ЦЕНЫ
        float average_price = 0;
        for (int i = 0; i < n; i++)
        {
                average_price += candies[i].price;
        }
        average_price /= n;
отобразить товары с ценой вышей средней:
Код:
     cout << "ВЫВОД ТОВАРОВ С ЦЕНОЙ ВЫШЕ СРЕДНЕЙ:\n";
     for (int i = 0; i < n; i++)
     {
        if(candies[i].price>average_price) 
        {
               cout << candies[i].NAME << " " << candies[i].price << " \n ";
         } 
     }
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.12.2016, 17:56   #3
Vladkp
Пользователь
 
Регистрация: 05.10.2016
Сообщений: 24
По умолчанию

эмм
Vladkp вне форума Ответить с цитированием
Старый 22.12.2016, 17:56   #4
Vladkp
Пользователь
 
Регистрация: 05.10.2016
Сообщений: 24
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
это выкинуть:










средняя цена - это отношение суммы всех цен к количеству.

т.е.
Код:
 //НАХОЖДЕНИЕ СРЕДНЕЙ ЦЕНЫ
        float average_price = 0;
        for (int i = 0; i < n; i++)
        {
                average_price += candies[i].price;
        }
        average_price /= n;
отобразить товары с ценой вышей средней:
Код:
     cout << "ВЫВОД ТОВАРОВ С ЦЕНОЙ ВЫШЕ СРЕДНЕЙ:\n";
     for (int i = 0; i < n; i++)
     {
        if(candies[i].price>average_price) 
        {
               cout << candies[i].NAME << " " << candies[i].price << " \n ";
         } 
     }
Спасибо! Еще вопрос, какой тип данных нужно поменять чтоб там где дата поступления я мог вводить например 20.10.2016, а то получается просто 2016. Так же и с "производитель" я могу написать только букву, не более.
Vladkp вне форума Ответить с цитированием
Старый 23.12.2016, 10:54   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Vladkp Посмотреть сообщение
ак же и с "производитель" я могу написать только букву, не более.
вместо char (это как раз буква по английски), нужно использовать тип string
вопрос тем удивительней, что для наименования конфет Вы же как раз тип string используете.


Цитата:
Сообщение от Vladkp Посмотреть сообщение
об там где дата поступления я мог вводить например 20.10.2016
это не такой простой вопрос, как кажется...
много разных вариантов решения в зависимости от того, что планируется дальше с этой датой делать и нужно ли проверять её корректность (ну, чтобы не ввели 15июн.00 или хз.дат.г или 31.02.2017 )
самый простой вариант - сделать дату типом string
чуть посложнее - составной тип из 3-х значений: int dd, mm, yy - и вводить три числа.
но самый правильный (но не самый простой, конечно), это воспользоваться библиотечный типом DATE (если он есть в вашей версии компилятора С++)
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывести индекс 1-ой высоты которая выше данной (FreePascal) VladKB1 Помощь студентам 0 09.10.2015 15:40
как вывести товары в категориях cyclobe WordPress и другие CMS 3 30.01.2013 10:32
вин ХР любой ценой ромик0 Windows 3 26.10.2011 04:56
Надо доработать форму, валидация и прочее с ценой договоримся anton.kramchuk JavaScript, Ajax 0 14.10.2011 09:16
вывести элементы выше главной диагонали : Rusl92 Помощь студентам 0 30.10.2009 22:45