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

Определить, сколько продавцов получили заработную плату в каждом заданном диапазоне - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ В заданном словаре найти все анаграммы http://www.cyberforum.ru/cpp-beginners/thread1643241.html
Задается словарь. Найти с помощью процедуры в нем все анаграммы (слова, составленные из одних и тех же букв). Я считываю файл и пытаюсь с помощью множества пока что найти в нем анаграммы. С самого начала наткнулся на проблему. Не получается записать во множество 's' слой файл. Прошу помогите) Может идейку какую-нибудь подкинете, каким еще способом можно найти те самые анаграммы. Функцией...
C++ Вывод адреса переменной типа char Всем привет! Хочу задать вопрос... есть код: #include <iostream> int main() { char ch = 'h'; char* p = &ch; http://www.cyberforum.ru/cpp-beginners/thread1643236.html
Разница между функциями atan и atan2 C++
Здравствуйте. В чём разница между atan и atan2?
C++ Определить – является ли натуральное число простым
4) Определить – является ли натуральное число простым. Простое число – число, делящееся только на 1 и на само себя. При решении задачи составить схему программы и реализовать программу на языках С++
C++ Найти делители натурального числа, введенного с клавиатуры http://www.cyberforum.ru/cpp-beginners/thread1643193.html
3) Найти делители натурального числа, введенного с клавиатуры. При решении задачи составить схему программы и реализовать программу на языках С++
C++ Определить, является натуральное число четным или нечетным 2) Определить, является натуральное число четным или нечетным. При решении задачи составить схему программы и реализовать программу на языках С++ подробнее

Показать сообщение отдельно
Strax77
 Аватар для Strax77
0 / 0 / 0
Регистрация: 02.12.2015
Сообщений: 9
20.01.2016, 13:48     Определить, сколько продавцов получили заработную плату в каждом заданном диапазоне
Как исправить код, чтобы он решал поставленную задачу?

В книжке попалась вот такая задача:

Используйте одномерный массив для решения следующий задачи. Компания платит продавцам на комиссионной основе. Продавцы получают 200 долларов в неделю плюс 9% от валовой продажи за эту неделю. Например, продавец, валовая продажа которого за неделю составила 5000 долларов, получает 200 долларов плюс 9% от 5000 долларов, или всего 650 долларов. Напишите программу (используя массив счетчиков), которая определяет, сколько продавцов получили заработную плату в каждом из следующих диапазонов (примем допущение, что зарплата каждого продавца округляется до целого значения):

1.200-299
2.300-399
3.400-499
4.500-599
5.600-699
6.700-799
7.800-899
8.900-999
9. 1000 и более.

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
39
#include <iostream>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"RUS");
 
    int sellers[9] = {0}; // массив счетчиков... сколько итого бабла получит продавец... sellers[0] - 200-299, sellers[1] - 300-399 и т.д.
    int numberOfSales (0); // сколько продавец наторговал за неделю!
 
    while (cin >> numberOfSales) {
 
        numberOfSales = numberOfSales* 0.09 + 200;
        
        if (numberOfSales > 1000) // все результаты, когда продавец получит больше штуки засунуть в последний элемент массива
            ++sellers[8];
 
        ++sellers[numberOfSales / 100 - 2];
    }
    
    int lessValue (200), largerValue (299); // "от" и "до" для вывода результатов
    for (auto i = begin(sellers); i != end(sellers); ++i) {
        
        if (i == end(sellers)-1)
            cout << '$' << lessValue 
                 << " и более: "
                 << *i << '\n';
        else
        cout << '$' << lessValue 
             << "-$" << largerValue
             << ": " << *i << '\n';
 
        lessValue  +=100; largerValue += 100;
    }
 
    system("PAUSE");
    return 0;
}
Собственно, такая проблема - когда вводишь большое число (причем каждый раз по разному - может заругаться и на 300 тысяч, и на миллионе), компилятор пишет, что нарушил права чтения по адресу такому-то.... Хотя, вроде бы, в условии поставил, что все что больше тысячи - сувать в последний элемент массива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru