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

> Внимание!

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

> подсчёт символов, Чистый С
Гость
сообщение 22.09.2006 8:55
Сообщение #1


Гость






Помогите пожалуйста решить задачу на чистом Си.... вводиться строка символов на выходе сведения о колличестве каждого символа в строке.... abcccbd вывод a -1, b - 2, c - 3, d - 1
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 6)
volvo
сообщение 22.09.2006 9:39
Сообщение #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;
}
 К началу страницы 
+ Ответить 
Гость
сообщение 22.09.2006 9:50
Сообщение #3


Гость






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


Гость






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

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


Гость






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


Гость






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

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


Гость






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

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

 



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