Ciao, ho un problema con questo programma:

codice:
	#include  <stdio.h>

	/* conta le cifre, le spaziature e gli altri caratteri */
	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("cifre =");
		   for (i=0; i<10; ++i)
			  printf("%d", ndigit[i]);
		   printf(", spaziature = %d, altri = %d\n, nwhite, nother);
	}
L’output di questo programma, eseguito con il suo stesso testo in input, dovrebbe essere

Cifre = 9 3 0 0 0 0 0 0 0 1, spaziature = 123, altri = 345

Ora, nel mio libro il codice viene indicato come funzionante ma quando provo a complilarlo mi da quest'errore:

-linux:~/Documenti/C$ gcc -o variabili variabili.c
variabili.c:24:13: warning: missing terminating " character
variabili.c: In function ‘main’:
variabili.c:24: error: missing terminating " character
variabili.c:25: error: expected expression before ‘}’ token
variabili.c:25: warning: format not a string literal and no format arguments
variabili.c:25: error: expected ‘;’ before ‘}’ token

Da quel che ho capito il problema è che gli manca un " per chiudere il printif alla fine... quel che non ho capito è invece dove metterlo, ho provato decine di combinazioni ma niente, non parte

Qualche suggerimento? grazie