#include int main() { int c = 0; int letter_i = 0; int letters[26] = {0}; int num_letters = 26; printf( "Enter a block of text ending with !\n\n" ); while ( ( c = getchar() ) != '!' ) { if ( c >= 65 && c < 91 ) { ++letters[ c - 'A' ]; } else if ( c >= 97 && c < 123 ) { ++letters[ c - 'a' ]; } } printf( "\n" ); for ( letter_i = 0; letter_i < num_letters; letter_i++ ){ printf( " %c : %4d ", 'A' + letter_i, letters[ letter_i ] ); if ( letter_i % 6 == 5 ) { printf( "\n" ); } } printf( "\n\n" ); return 0; } /* This is the input to the program shown above. It is just text which contains a variety of alphabetic and non-alphabetic characters. The program will count the number of times each letter of the alphabet occurs in the input. Using arrays is a convenient way to organize these counts of the 26 letters of the alphabet! A few questions related to this program: What is letters? What does letters store? How many index positions are there in letters? What is the range of the index positions in letters? How do you access the index positions of letters? What does c - 'a' and c - 'A' equal? Once you access an index position in letters, what can you do with it? How is the ++ operator being used in this program? */