RSS Forums RSS
Please support our C advertiser: Programming Forums

Counter issues

Join Date: Apr 2004
Posts: 3,766
Reputation: Dave Sinkula is a glorious beacon of light Dave Sinkula is a glorious beacon of light Dave Sinkula is a glorious beacon of light Dave Sinkula is a glorious beacon of light Dave Sinkula is a glorious beacon of light Dave Sinkula is a glorious beacon of light 
Rep Power: 17
Solved Threads: 147
Colleague
Dave Sinkula's Avatar
Dave Sinkula Dave Sinkula is offline Offline
long time no c

Re: Counter issues

  #2  
Jul 23rd, 2004
I'd be careful with the <=, and I wish I'd spent more time looking into the 'Why doesn't this work?', but you may want to try something like this.
#include <stdio.h>
size_t FillAgeList(int ageList[], size_t size)
{
size_t i, counter = 0;
/* Reads the data from .dat file */ 
for ( i = 0; i < size; ++i )
{
	 if ( scanf("%d", &ageList[i]) != 1 || ageList[i] == 0 )
	 {
		 break;
	 }
	 ++counter;
}
/* Prints the integers */
for ( i = 0; i < counter; ++i )
{
	 printf("%d\n", ageList[i]);
}
return counter;
}	
int main(void)
{
int array[10];
size_t size = FillAgeList(array, sizeof array / sizeof *array);
printf("size = %d\n", (int)size);
return 0;
} 
[edit]Oh, wait. I think this is it.
 for(i = 0; i <= MAX || ageList[i] != 0; i++)
You increment i past any known values and then check to see whether this is a zero, when you've already initialized it to -1 (if you havent' wandered off the end of the array). So this might also cure things.
#include <stdio.h>
#define MAX 10
int FillAgeList(int ageList[])
{
 
int i; 
int counter;
 
/*Initializes the array*/
for(i = 0; i <= MAX; i++)
{
	 ageList[i] = -1;
}
counter = 0; 
/*Reads the data from .dat file*/ 
for(i = 0; i <= MAX; i++)
{
 
	 scanf("%d",&ageList[i]);
	 if(ageList[i] == 0)
	 {
		 break;
	 }
	 counter += 1;
}
/*Prints the integers*/
for(i = 0; i <= MAX && ageList[i] != 0;i++)
{
	 printf("%d\n",ageList[i]);
}
	 return(counter);
}	
int main(void)
{
int array [ MAX + 1 ], size = FillAgeList(array);
printf("size = %d\n", size);
return 0;
} 
High Plains Blogger #plains #lounge ## I, for one, welcome our new socialist overlords.
"Capitalism is the unequal distribution of wealth. Socialism is the equal distribution of poverty."
Reply With Quote  
Forums | Blogs | Tutorials | Code Snippets | Whitepapers | RSS Feeds | Advertising
All times are GMT -4. The time now is 7:17 am.
Newsletter Archive - Sitemap - Privacy Statement - Acceptable Use Policy - Contact Us
Forum system based on vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
©2003 - 2008 DaniWeb® LLC