# array

Discussion in 'C' started by answerme, Jul 10, 2008.

Joined:
Dec 17, 2007
Messages:
114
0
Trophy Points:
0
Kindly tell me the logic behind 2 statement which are in bold
Code:
```main()
{
int c,i, nwh,noth;
int ndig[3];
nwh=noth=0;
for(i=0;i<3;i++)
ndig[i]=0;
while((c=getchar())!=EOF)
[B]if(c>='0' && c<='9')
++ndig[c-'0'];[/B]		else
if(c==' ' |c =='\n'|c=='\t')
++nwh;
else
++noth;
for(i=0;i<3;i++)
printf("digit =%d",ndig[i]);
printf(" white space= %d others= %d",nwh,noth);
}```

2. ### NewUserNew Member

Joined:
Jul 11, 2008
Messages:
1
0
Trophy Points:
0
Hi,

Actually i am not able to got u.
If you need to know the meaning of these lines then find below:
if(c>='0' && c<='9') Here, we are checking, whether enetred input is between 0 and 9;
Here input is index of array (ndig);
if entered input is between 0 and 9 then in statement ++ndig[c-'0'], we are going to the particular
index of array using this [c-'0'] (index of array is input entered by user) and incresing the value of array of particular index by one.Suppose user is entered 1, this value is greater than o and less than 9.So conpiler will execute statement ++ndig[c-'0'], in this statement compiler will find the index of array through statement c-'0', in this statement c is enetered digit, eneterd digit is 1 in chat this will be 49, '0' means 48, if we minus the 48 from 49 then result will be one. In this way compiler will go the first index of array (ndig) and increment the value of that index by one.