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

Написать программу, которая подводит итоги конкурса "5 лучших товаров года". - C++

Восстановить пароль Регистрация
 
Cutegirl1645
Сообщений: n/a
19.12.2008, 16:13     Написать программу, которая подводит итоги конкурса "5 лучших товаров года". #1
Здравствуйте, помогите пожалуйста решить задачу.
Написать программу, которая подводит итоги конкурса "5 лучших товаров года". Оценка товара производится по пятибалльной системе. Программа должна получать от пользователя число людей, давших товару определенный бал, вычислить общее количество проголосовавших за данный товар людей и число набранных баллов, и после этого упорядочить список (методом пузырька с простым алгоритмом) в соответствии с набранным количеством баллов. Сортировку оформить в виде функции.

Заранее спасибо!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2008, 16:13     Написать программу, которая подводит итоги конкурса "5 лучших товаров года".
Посмотрите здесь:

C++ Написать и протестировать функцию compress(), которая "сжимает" строку, удаляя из нее все пробелы.
C++ Написать и протестировать функцию,которая "переворачивает" строку,передаваемую ей в качестве параметра
Написать функцию, которая в массиве char ищет цифры и заменяет их символом "#" C++
C++ Функция: Написать и протестировать функцию, которая "сжимает" строку, удаляя из неё все пробелы.
C++ Нужно написать код для программы, которая выводит на экран звездочки ("*") в таком порядке:
C++ Создать массив структур "Ведомость про участников конкурса"
Написать программу которая будет "переворачивать слова в обратную строну" C++
Написать программу, которая методом обмена "пузырька" сортирует по убыванию введенный с клавиатуры одномерный массив C++
C++ Тяжело ли написать утилитку, которая работает как DOS-команда "pause"
Написать функцию, которая сортирует переданный ей динамический массив "быстрой" сортировкой C++
Написать программу, которая устанавливается, и отображается во вкладке "Программы и компоненты" C++
C++ Написать программу, которая определяет, сколько гласных символов введено с клавиатуры и сколько из них "а"

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
19.12.2008, 20:37     Написать программу, которая подводит итоги конкурса "5 лучших товаров года". #2
узкий момент

Код
 
#include <stdio.h>

typedef struct {
    char *name;
    int mark;
} Product;

Product *bubble_struct(Product *, int, int, int);

/* упорядочивает список товаров методом пузырька в соответствии
   с набранным количеством баллов (пример) */
main()
{
    int i;
    Product list[] = {
        { "tv", 65 },
        { "carpet", 12 },
        { "arm-chair", 28 },
        { "desk", 10 },
        { "cup", 7 },
        { "journal", 70 }
    };
    
    printf("Product:\n");
    for (i = 0; i < 6; i++)
        printf("%15s %3d\n", list[i].name, list[i].mark);
    bubble_struct(list, 0, 5, '<');
    putchar('\n');
    printf("Sorted:\n");
    for (i = 0; i < 6; i++)
        printf("%15s %3d\n", list[i].name, list[i].mark);
    return 0;
}

/* bubble_struct:  сортировка пузырьковым методом; частный случай */
Product *bubble_struct(Product *a, int m, int n, int side)
{
    char is = 1;
    int i;
    Product c;
    
    while (is) {
        is = 0;
        for (i = m+1; i <= n; i++)
            if (side == '>' ?
                            a[i].mark < a[i-1].mark :
                            a[i].mark > a[i-1].mark) {
                c = a[i];
                a[i] = a[i-1];
                a[i-1] = c;
                is = 1;
            }
    }
    return a;
}

/* bubble:  сортировка пузырьковым методом */
int *bubble(int *a, int m, int n)
{
    char is = 1;
    int i, c;
    
    while (is) {
        is = 0;
        for (i = m+1; i <= n; i++)
            if (a[i] < a[i-1]) {
                c = a[i];
                a[i] = a[i-1];
                a[i-1] = c;
                is = 1;
            }
    }
    return a;
}
вывод
Код
[guest@localhost tmp]$ ./test
Product:
             tv  65
         carpet  12
      arm-chair  28
           desk  10
            cup   7
        journal  70

Sorted:
        journal  70
             tv  65
      arm-chair  28
         carpet  12
           desk  10
            cup   7
[guest@localhost tmp]$
update:
теперь сортирует с направлениями от меньшего к большему и наоборот от большего к меньшему
скорость чуток падает, зато вывод одинаковый
Yandex
Объявления
19.12.2008, 20:37     Написать программу, которая подводит итоги конкурса "5 лучших товаров года".
Ответ Создать тему
Опции темы

Текущее время: 15:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru