|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Переделать программу на Си |
|
C/C++ - Переделать программу на Си
|
Новый участник Сообщения: 24 |
Профиль | Отправить PM | Цитировать Всем доброго времени суток!
Помогите, пожалуйста, переделать программу на язык Си или подскажите хотя бы, какие функции использовать, очень надо. Сам я пробовал, но у меня что-то на получается (особенно, где происходит копирование строк). Программирую на Visual C++ 2008. Заранее спасибо. Вот, собственно, и программа: var n, Num, Num3, i, j, t: integer; Count: array[1..10] of integer; a, b, c, s: string; Names: array[1..10] of string; begin readln(a); {Считываем аббревиатуру} Num:=0; {Число различных фирм} ReadLn(N); {Считываем количество фирм} for i:=1 to N do begin ReadLn(s); {считали название фирмы} b:=s[1]; c:=s; while (pos(' ',c)>0) and (length(b)<= length(a)) do {составляем аббревиатуру из названия} begin b:=b+c[pos(' ',c)+1]; delete(c,pos(' ',c),1) end; if a = b then begin {Осуществляем поиск названия в списке уже встретившихся} j:=1; while (j<=Num) and (s<>Names[j]) do j:=j+1; {Если фирма найдена} if j<=Num then {Увеличиваем счетчик числа повторений} Count[j]:=Count[j]+1 else begin {Иначе добавляем фирму в конец списка} Names[j]:=s; Count[j]:=1; Num:=Num+1 end end end; {Сортируем массивы Names и Count в порядке убывания значений массива Count} for i:=Num downto 2 do for j:=2 to i do if Count[j-1]<Count[j] then begin t:=Count[j]; Count[j]:=Count[j-1]; Count[j-1]:=t; s:=Names[j]; Names[j]:=Names[j-1]; Names[j-1]:=s; end; if Num < 3 then Num3:=Num else Num3 := 3; for i:=1 to Num do if Count[i] >= Count[Num3] then writeln(Names[i]); end. |
|
Отправлено: 20:17, 02-05-2013 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать S*2012*, уточните пожалуйста С или С++ ? Вопрос существенный, т.к. в С++ есть инструменты для работы со строками. В простом С AFAIK их нет и приходится строить достаточно сложные конструкции.
В любом случае приведите ваши собственные попытки. Что то я код читаю, смысла понять не могу. Он что вообще делать то должен? Цитата S*2012*:
|
|
------- Отправлено: 21:16, 02-05-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 24
|
Профиль | Отправить PM | Цитировать Писать нужно на Си.
На вход программе в первой строке подаётся аббревиатура – строка из заглавных латинских букв, состоящая не менее чем из двух и не больше чем из пяти букв. Во второй строке находится число N – количество названий, не все из них точно подходят под указанную аббревиатуру. Программа должна вывести список из трёх фирм с нужной аббревиатурой, которые упоминаются чаще всего. Пример входных данных: MS 5 MOUNTING SYSTEM MACRO SOFT COMPANY MONTANA JEANS MOUNTING SYSTEM MACRO SOFT Пример выходных данных для приведенного выше примера входных данных: MOUNTING SYSTEM MACRO SOFT Я зациклился на функциях gets и strcat, когда пытался переделать. Вот фрагмент: |
Отправлено: 21:28, 02-05-2013 | #3 |
Новый участник Сообщения: 24
|
Профиль | Отправить PM | Цитировать Вопрос не по теме: во много ли раз проще работать си строками в Visual Basic, нежели в Си?
|
Отправлено: 21:44, 02-05-2013 | #4 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать S*2012*,
Цитата S*2012*:
Основы работы со строками Visual Basic Строки в С и С++(часть 1) Как я понял из задания, надо отсортировать предложенный массив, и вывести наиболее часто употребляемые значения. Мне сейчас сделать это несколько затруднительно. Разбейте задачу на составляющие и попробуйте поискать готовые фрагментарные решения. Ввод данных / сортировка. Сортировка массива строк Си может поможет (тема форумная, стартовый код не верен). |
||
------- Отправлено: 22:31, 02-05-2013 | #5 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
C/C++ - Создание ОС на Си и Си++ | morph-x | Программирование и базы данных | 2 | 26-10-2010 20:35 | |
C/C++ - Переделать программу на кассы | mephistophel | Программирование и базы данных | 0 | 12-06-2010 17:10 | |
C/C++ - Майлер на СИ | DaRiYs | Программирование и базы данных | 10 | 01-09-2008 12:39 | |
Почему большинство проектов Open Source написаны на СИ, а не на СИ++ | Mr666 | Программное обеспечение Linux и FreeBSD | 2 | 20-02-2008 23:17 | |
код на си | libricon | Программирование и базы данных | 7 | 07-04-2004 20:03 |
|