Подсчет цифр, символов-разделителей и прочих символов в массиве - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. В учебнике дан код:
#include <stdio.h>
 
/* подсчет цифр, символов-разделителей и прочих символов */
main()
{
    int c, 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' && c <= '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);
}
Код почему-то у меня не компилится. Не могу найти ошибку. Наверно еще потому, что не совсем понял работу массива:
 for (i = 0; i < 10, ++i)
        ndigit[i]= 0;
 
    while ((c = getchar()) != EOF)
        if (c >='0' && c <= '9')
            ++ndigit[c – '0'];
Объясните пожалуйста

Решение задачи: «Подсчет цифр, символов-разделителей и прочих символов в массиве»

textual
Листинг программы
::memset (ndigit, 0, sizeof (ndigit));

Объяснение кода листинга программы

  1. В данном коде используется функция memset, которая инициализирует все элементы массива ndigit значением 0.
  2. Функция memset принимает три аргумента: исходный массив, начальное значение и размер массива в байтах.
  3. В данном случае, ndigit - это массив, который будет использоваться для подсчета цифр.
  4. Размер массива в байтах - это второстепенный параметр, который используется функцией memset для правильной инициализации каждого элемента массива.
  5. После выполнения функции memset, все элементы массива ndigit будут равны 0.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5
Похожие ответы