URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 5664
[ Назад ]

Исходное сообщение
"Выборка из массива на Си"

Отправлено Fagot , 24-Авг-06 19:04 
Здраствуйте. Как лучше решить такую проблемку. Есть такой массив:

struct arr {
   char  name[10];
   int   cost;
   int   quantity;
} arrs[100];

Обрабатывать циклом текстовый файл с подобным содержимым:
Арбуз 10 50
Дыня 25 200
Арбуз 12 20
Арбуз 12 20
Дыня 20 100

Надо запихнуть всё в массив, складывая цифровые значение у одинаковых наименований.

Т.е. в результате должно получится:
Арбуз 34 90
Дыня 45 300


Содержание

Сообщения в этом обсуждении
"Выборка из массива на Си"
Отправлено alexey13 , 24-Авг-06 23:44 
А чего сложного ?
Читаешь строчку из файла.
Проходишь от начала массива, сравнивая строки с наименованием
если
    строки совпадают суммируешь и читаешь следующюю строку
если дошел до конца массива и не нашел совпадений , то просто добавляешь в конец массива
новую запись.
все.



"Выборка из массива на Си"
Отправлено Fagot , 27-Авг-06 12:16 
>А чего сложного ?
>Читаешь строчку из файла.
>Проходишь от начала массива, сравнивая строки с наименованием
>если
>    строки совпадают суммируешь и читаешь следующюю строку
>если дошел до конца массива и не нашел совпадений , то просто
>добавляешь в конец массива
>новую запись.
>все.

Ну это понятно. Я также сделал используя цикл. Но может есть какая-нить интересность типа ассоциативных массивов (как на PHP)...


"Выборка из массива на Си"
Отправлено Мимо проходил , 28-Авг-06 12:32 
>>А чего сложного ?
>>Читаешь строчку из файла.
>>Проходишь от начала массива, сравнивая строки с наименованием
>>если
>>    строки совпадают суммируешь и читаешь следующюю строку
>>если дошел до конца массива и не нашел совпадений , то просто
>>добавляешь в конец массива
>>новую запись.
>>все.
>
>Ну это понятно. Я также сделал используя цикл. Но может есть какая-нить
>интересность типа ассоциативных массивов (как на PHP)...

man tsearch или man hsearch