#include #include #include #define MAX(a, b) ((a) < (b) ? (b) : (a)) #define MIN(a, b) ((a) < (b) ? (a) : (b)) double average(unsigned int length, unsigned int *list) { double sum = 0.0; /* access all the arguments assigned to valist */ for (unsigned int i = 0; i < length; i++) { sum += list[i]; } return sum/length; } unsigned int totalDistance(unsigned int crabLength, unsigned int *crabs, unsigned int target){ unsigned int totalDistance = 0; for (unsigned int i = 0; i < crabLength; i++){ totalDistance += abs( (int)target - (int)crabs[i] ); } return totalDistance; } int main( int argc, char *argv[] ){ if( argc == 2 ) { FILE *fp=fopen(argv[1], "r"); unsigned int count=0; unsigned int no; char ch; // Count the number of crab positions while ( fscanf( fp, "%i%c", &no, &ch ) ){ count++; if ( ch == '\n' ) break; } rewind(fp); unsigned int min = ~0; unsigned int max = 0; unsigned int crabs[count]; for (unsigned int i= 0; i