1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

array

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

  1. answerme

    answerme New Member

    Joined:
    Dec 17, 2007
    Messages:
    114
    Likes Received:
    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. NewUser

    NewUser New Member

    Joined:
    Jul 11, 2008
    Messages:
    1
    Likes Received:
    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.
     

Share This Page