Cominciamo! allora questo programma conta il numero di ripetizioni di una cifra,degli spazi bianchi e di altri caratteri.Quindi:
C++ Programming
#include <stdio.h>
int main()
{
int c, i, nwhite, nother, 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(", spazi bianchi = %d, altri = %d\n", nwhite, nother);
}
}
Iniziamo come al solito definendo le variabili che in questo caso sono: c, i, nwhite, nother e ndigit[10]
[10]? Questo specifica che ndigit è un vettore di dieci interi, e in C i vettori partono sempre da zero (ndigit[0],ndigit[1]..ecc..)
Poi for"per"->(i uguale a 0; i minore di 10 e i aumentato di 1 allora-> ndigit[i] = 0
(non spiego tutto perche l'avro ripetuto 200 volte...)
passiamo a: if"se"->( c maggiore e uguale a 0 e c minore e uguale a 9) allora->ndigit aumenta di 1[ c - '0'] (c >= '0' && c <= 9) stabilisce se c è una cifra (1,2,3 ecc..
) in caso affermativo il valore numerico di quella cifra è c - '0'
salto anche questo perche lo abbiamo già visto identico ma aggiunge qualche cosa
Qui possiamo vedere la forma
if (condizione)
instruzione
else if (condizione2)
instruzione2
else
instruzione 3
questo condizioni vengono valutate dall'altro verso il basso fino a che una di esse sia soddisfatta