#include "common.h" char *aplacetext[3]= { "st", "nd", "rd" }; void heat_stats( int ccar ) { int i; int j; int icar; int itrack; for ( icar = 0; icar < ccar; icar++ ) { gasort[icar]=icar; grace_sum[icar] = 0; grace_sumtime[icar] = 0; for ( itrack = 0; itrack < CTRACKS; itrack++ ) { grace_sum[icar] += grace_results[itrack][icar]; grace_sumtime[icar] += grace_time_results[itrack][icar]; } GOTO_ROW_COL(CAR_NUMBER+icar*2+1,TRACK_NUM_WIDTH+1+4*TRACK_NUM_WIDTH); printf("|%d", grace_sum[icar] ); } GOTO_ROW_COL(STATUS_INPUT_LINE,3); for ( i = 0; i < ccar; i++ ) { for ( j = i+1; j < ccar; j++ ) { if ( grace_sum[gasort[i]] > grace_sum[gasort[j]] ) { swap( i, j); } else if ( ( grace_sum[gasort[i]] == grace_sum[gasort[j]] ) && ( grace_sumtime[gasort[i]] > grace_sumtime[gasort[j]] ) ) { swap( i, j); } } } i = 0; j = 0; SET_FOREGROUND_BACKGROUND(32,40); while ( i < ccar ) { GOTO_ROW_COL(CAR_NUMBER+gasort[i]*2+1,TRACK_NUM_WIDTH+1+5*TRACK_NUM_WIDTH); j = i; while ( ( j < (ccar-1) ) && ( grace_sum[gasort[i]] == grace_sum[gasort[j+1]] ) ) { j++; } if ( i == j ) { printf( " %d%s", i+1, PLACETEXT(i) ); GOTO_ROW_COL(CAR_NUMBER+gasort[i]*2+2,TRACK_NUM_WIDTH+3+5*TRACK_NUM_WIDTH); dump_speed( USEC_TO_AVG_MPH_SCALE_4_RUNS( grace_sumtime[gasort[i]]), NULL ); puts( "mph" ); i++; } else { while ( i <= j ) { printf( "*%d%s", i+1, PLACETEXT(i) ); GOTO_ROW_COL(CAR_NUMBER+gasort[i]*2+2,TRACK_NUM_WIDTH+3+5*TRACK_NUM_WIDTH); dump_speed( USEC_TO_AVG_MPH_SCALE_4_RUNS( grace_sumtime[gasort[i]]), NULL ); puts( "mph" ); i++; GOTO_ROW_COL(CAR_NUMBER+gasort[i]*2+1,TRACK_NUM_WIDTH+3+5*TRACK_NUM_WIDTH); } } } GOTO_ROW_COL(STATUS_INPUT_LINE+1,1); fflush( stdout ); }