float str_to_float (char string[])
{
	float decimal_convert (int decimal_at, int count, int result);
	int negative = false, i = 0, decimal_at, result = 0, int_value, 
		period = false;
	float decimal, final;
	
	// check string for negative sign
	if ( string[0] == '-' )
	{
		negative = true;
		i = 1;
	}
	// itirate through string as long as i = number or period char
	while ( string[i] >= '0' && string[i] <= '9' || string[i] == '.' )
	{
		if ( string[i] == '.' )  // if period char is found
		{
			decimal_at = i;
			period = true;
			++i;						
		}
		int_value = string[i] - '0'; // using ASCII subtracts char - char = int
		result = result * 10 + int_value;
		++i;
	}
	
	if ( period ) // adds decimal 
		final = decimal_convert (decimal_at, i, result);
	else
		final = result;
Beispiel #2
0
int mutation(int n)
{
	int site = random_generate(MAX);
	int i,j;
	int array[MAX];
	
	for(i=0; i<MAX;i++)
	{
		array[i] = n%2;
		n = n/2;
	}
	Flip(array,site);
	return decimal_convert(array);
	cout<<endl;
}
float str_to_float (char string[])
{
	int negative = false;
	int i = 0; 
	int decimal_at;
	int count = 0;
	int period = false;
	float decimal;
	int result = 0;
	int int_value;
	
	if ( string[0] == '-' )
	{
		negative = true;
		i = 1;
	}
	
	if ( has_decimal (string, decimal_at, count) )
	{
		period = true;
	}
	
	while ( string[i] >= '0' && string[i] <= '9' )
	{
		int_value = string[i] - '0';
		result = result * 10 + int_value;
		++i;
		printf ("\nresult = %i\n", result);
	}
	
	if ( period )
	{
		decimal = decimal_convert (decimal_at, count);
		result = decimal * result; 
	}
	
	if ( negative )
	{
		result = -result;
	}
	
	return result;
	
}