Addieren und Vergleich



  • Warum sagst du es nicht gleich so?

    #include <math.h>
    #include <float.h>
    #include <string.h>
    
    float average( const char *string ) {
    
    	unsigned    sum    = 0;
    	size_t      count  = 0;
    
    	while( *string ) {
    
    		sum += *string - '0';
    		++count;
    		++string;
    	}
    
    	return count ? sum / ( (float) count ) : 0.0f;
    }
    
    int besser( const char *a, const char *b ) {
    
    	float average_a = average( a );
    	float average_b = average( b );
    
    	if( fabsf( average_a - average_b ) < FLT_EPSILON ) {
    
    		return 0;
    	}
    
    	return average_a < average_b ? -1 : 1;
    }
    

    greetz, Swordfish


Anmelden zum Antworten