# Twelve categories of input?

This is a discussion on Twelve categories of input? within the C Programming forums, part of the General Programming Boards category; I'm learning C from the book C Programming Language by Kernighan & Ritchie. I was told that this is the ...

1. ## Twelve categories of input?

I'm learning C from the book C Programming Language by Kernighan & Ritchie. I was told that this is the best book.

In the chapter about Arrays they said :

Let is write a program to count the number of occurrences of each digit, of white space characters (blank, tab, newline), and of all other characters. This is artificial, but it permits us to illustrate several aspects of C in one program.

There are twelve categories of input, so it is convenient to use an array to hold the number of occurrences of each digit, rather than ten individual variables. Here is one version of the program:
I don't understand! How come 12 categories of input can be put into 10 variables??
Also, what are these categories?

digits are 0-9 + white space characters + all other characters it should exceed 12 inputs. Much less 10!

This is the code example :

Code:
```#include <stdio.h>

// count digits, white space, others
int main()
{
int c, i, nwhite, nother;
int ndigit[10];

nwhite = nother = 0;
for (i = 0; i < 10; i = i + 1)
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("digits = ");
for (i = 0; i < 10; ++i)
printf(" %d", ndigit[i]);
printf(" , white space = %d, other = %d \n", nwhite, nother);
}```

Any help is much appreciated

2. I admit that might have been a little poorly worded.
Anyhow, here is what I understand it as:
Each of the digits 0-9 are a different category. We want to count how many occurrences of these these we find.
Whitespace is another category. We don't care what kind of whitespace it is. Tabs, spaces, etc, it's all the same. We count them as whitespace by keeping track of much whitespace you've inputted.
Same story with non-whitespace and non-digit characters.

3. Aahh okay

So 10 digits + whitespace + other, so yeah; 12 inputs.

thanks!!

Popular pages Recent additions