C-programming loop wont stop with scanf!=0 -


what wrong ? also, have use scanf(). supposed read integers , sum them, loop stop when 0 entered..

main (void){  int a; int r=0;  while(scanf(" %d",&a)){     r=r+a;     }  printf("the sum %d\n",r);  return 0; } 

quoting man

these functions return number of input items assigned. can fewer provided for, or zero, in event of matching fail- ure. 0 indicates that, although there input available, no conver- sions assigned; typically due invalid input character, such alphabetic character `%d' conversion.
value eof returned if input failure occurs before conversion such end- of-file occurs. if error or end-of-file occurs after conversion has begun, number of conversions completed returned.

so, pretty explains returned scanf().

you can solve problem adding ( 1 == scanf("%d", &a) && != 0 ) condition in while loop like

int main (void)   {      int a;     int r=0;      while( 1 == scanf("%d", &a) && != 0 )       {          r=r+a;       }      printf("the sum %d\n",r);      return 0;   } 

also note have specify type of main int main().

i add loop end when enter character 'c' ( or string ) , show sum of numbers entered before entering character.


Comments

Popular posts from this blog

java - Could not locate OpenAL library -

c++ - Delete matches in OpenCV (Keypoints and descriptors) -

sorting - opencl Bitonic sort with 64 bits keys -