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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ переведите пожалуйста с языка паскаль на си++! http://www.cyberforum.ru/cpp-beginners/thread18961.html
вот код: program cyb_38; uses Crt; var n, i, unik, srst: byte; sum: longint; sr_ar: real; mas: array of integer; begin
C++ Определить длину самой большой последовательности подряд идущих согласных В строке записаны несколько предложений . Каждое предложение заканчивается точкой, вопросительным или восклицательным знаками. 1. Вывести на экран только те предложения в которых нет ни 1 цифры 2. Определить длину самой большой последовательности подряд идущих согласных Это 2 разные программы. В понедельник надо сдавать задачи а что делать я не знаю помогите пожалуйста... Извиняюсь если... http://www.cyberforum.ru/cpp-beginners/thread18903.html
C++ найти корень уравнения методом хорд и касательных на С
найти корень уравнения (x*x + ln(x)-2) методом хорд и касательных на С. Если не можете, тогда подскажите плз... В этом методе есть f, f1, f2.. f-само уравнение, а что задавать для f1,f2 ? Заранее спасибо
C++ Рисование треугольника
Здравствуйте, нужно сделать вот это через подпрограмму: ----*---- ---*-*--- --*---*-- -*-----*- ********* '-' это пробелы
C++ Каким образом нормально считать с консоли строку? http://www.cyberforum.ru/cpp-beginners/thread18873.html
Дело в том что необходимо считывать строки вводимые с консоли. Но полноценно это не выходит. Ф-ция scanf() обеспечивает считывание только до первого пробела, сколько читал мануалов по ее использованию, выхода из ситуации не нашел. getchar() - вообще не то что надо... Прошу вашей помощи. Нужно просто считать введенную строку и сохранить в переменную.
C++ Need an identifier to declare что за ошибка??? Код вызывает вот такие ошибки: din108_1.cpp(15): E2146 Need an identifier to declare din108_1.cpp(23): E2146 Need an identifier to declare Вот полный листинг программы Вот здесь, ошибки: typedef struct Uzel *Ref; typedef struct Uzel { подробнее

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

Код
 
#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:
теперь сортирует с направлениями от меньшего к большему и наоборот от большего к меньшему
скорость чуток падает, зато вывод одинаковый
 
Текущее время: 17:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru