IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

 
 Ответить  Открыть новую тему 
> подсчёт символов, Чистый С
сообщение
Сообщение #1


Гость






Помогите пожалуйста решить задачу на чистом Си.... вводиться строка символов на выходе сведения о колличестве каждого символа в строке.... abcccbd вывод a -1, b - 2, c - 3, d - 1
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






#include <stdio.h>

int main() {
char s[256], *p;
int count[256] = {0}, i;

gets(s);
for(p = s; *p; p++) ++count[(int)(*p)];
for(i = 0; i < 256; ++i)
if(count[i]) printf("%c - %d\n", (char)i, count[i]);

return 0;
}
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






сообщает об ошибках
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Ничего подобного, я проверял, все работает... Какой компилятор? И какое РАСШИРЕНИЕ файлу ты дал?

Кстати, неплохо было бы привести и ошибки, которые (как ты утверждаешь) появляются...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






У меня тоже всё работает и без ошибок. спасибо volvo - если тебе не трудно поясни пожалуйста принцип работы, что для чего и т.п.
Заранее благодарю
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






blink.gif Какой такой принцип работы? Все просто: ходим по всему тексту (это первый for), пока строка не закончится... С каждым символом строки делаем следующее: берем его код (преобразованием к int), и элемент массива count, соответствующий этому коду увеличиваем на 1...

Изначально count весь обнуляется (это достигается записью: int count[256] = {0})... Ну, и распечатываем: перебираем все коды от 0 до 255 (больше просто нет кодов для char smile.gif ); если счетчик для какого-то кода больше 0, то печатаем символ с этим кодом и содержимое счетчика... Где затруднения?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Я ухнаю так как не очень хорошо пока знаю сам С, спосибо за пояснения, если можно хотелось бы узнать следующую итуацию, мне скзали, что нужно написать аналогичную задачу для целых чисел, т.е. данные это числа, также сообщили, что если делать эту прогу аналогично той, что была для исмволов, то получится довольно неудобно, т.е. на этот раз вводится огромное колличество чисел и надо с ним провернуть тоже, но придумать для этого удобный такой алгоритм....
Очень прошу помочь желательно исхобдником с комментариями
Заранее благодарю
С уважением,
Сергей
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 




- Текстовая версия 20.11.2017 20:21
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"