|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Учю Си :). Не понимаю, что делает оператор. Help. |
|
Учю Си :). Не понимаю, что делает оператор. Help.
|
Guest |
#include <stdio.h> /* подсчет цифр, символов-разделителей и прочих символов */ main() { int с, i, nwhite, nother; int ndigit[10]; nwhite = nother = 0; for (i = 0; i < 10, ++i) ndigit[i]= 0; while ((c = getchar()) != EOF) if (c >='0' && с <= '9') ++ndigit[c – '0']; else if (c == ' ' || c == '\n' || c == '\t') ++nwhite; else ++nother; printf(“цифры =“); for (i = 0; i < 10; ++i) printf(“%d”, ndigit[i]); printf(“, символы-разделители =%d, прочие =%d\n”, nwhite, nother); } [s]Исправлено: hasherfrog, 11:44 8-09-2004[/s] |
|
Отправлено: 22:35, 07-09-2004 |
Pasechnik
Сообщения: n/a |
В переменной с - код введенного символа. Потом от неё отнимают код символа '0' (нуль), следовательно результатом будет сама введенная цифра (а не её ASCII-код). А потом увеличивают элемент массива с индексом, соответствующим введенной цифре, на единицу.
|
Отправлено: 00:44, 08-09-2004 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Guest |
То есть, как я понял, ascii значение переэтовает в двоичный код, пересылается в регистер, отнимается от туда 0, и на переменную с перезаписывается уже не ascii код цифры, а двоичный код этой цифры?
Никогда и нигде не происходит обратного преобразования в ascii? |
Отправлено: 02:28, 08-09-2004 | #3 |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать Guest
(c – '0') - вычисление числа из ascii-кода цифры. (ndigit[c – '0']) - обращение к ячейке массива, соответствующей цифре. (++ndigit[c – '0'];) - увеличение этой ячейки на 1. Т.о. идёт подсчёт количества встреченных ascii-кодов, соответствующих каждой цифре 0-9, т.е. для каждой цифры свой счётчик. |
Отправлено: 12:07, 08-09-2004 | #4 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Что делает служба Adobe LM Service? | dascon | Хочу все знать | 2 | 10-09-2009 23:36 | |
HDD - Что делает Vista SP1 Ultimate с HDD?!? | Riw | Накопители (SSD, HDD, USB Flash) | 8 | 30-03-2009 18:17 | |
что это за оператор +7916? | alexandri | Мобильные ОС, смартфоны и планшеты | 7 | 25-07-2005 09:40 | |
Что делает команда? | Guest | Программное обеспечение Linux и FreeBSD | 19 | 03-06-2004 01:12 | |
Я понимаю, что подобное было, но всё же: | Guest | Хочу все знать | 4 | 12-05-2004 16:15 |
|