#include <stdio.h>
/* count digits, white space, others */
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("digits =");
for (i = 0; i < 10; ++i)
printf(" %d", ndigit[i]);
printf(", white space = %d, other = %d\n",
nwhite, nother);
}
Why is it, on line 12, ++ndigit[c-'0']; is used instead of just ++ndigit[c];?
Name:
Anonymous2010-01-25 11:33
Use SPACE
USE EMPTY LINES
Use BRACKETS!
BRACKETS ARE COOL!
NOT USING THEM MAKES YOU UNCOOL!
MAKE IT INT Main(int argc, char argv[]) AND RETURN 0 AT THET END STATNG THAT YOUR PROGRAM WAS A SUCCESS!
NOT DOING SO WILL RESULT IN PISS-POOR PROGRAMMING!
IF YOU ARE A COMPUTER GEEK YOU WOULD WANT TO BE POPULAR AT LEAST WITH THE GEEKS RIGHT?
THE FIRST FOR LOOP IS UNNECESSARY USE
int ndigit[10] = {0};
c IS NOT AN INT USE CHAR!!!
NO NEWLINE NEED INSIDE OF AN PRINTF!
IF YOU NEED ONE CLOSE PRINTF AND START WWITH ANOTHER PRINTF WHERE YOU LEFT OFF!!!
AND MOST IMPORTANTLY DO YOUR HOMEWORK YOURSELF!!!!