I've been trying to figure this out, but I can't get this to work! Can someone explain to me what I'm doing wrong?

This is what I'm supposed to do:

And so far, I have this:Write a function that returns the distance a vehicle can travel in a given time, where the vehicle has an initial velocity of zero and a constant acceleration up to a specified maximum velocity. The function should return a float and should have parameters for time (in seconds), the vehicle's acceleration (in m/s^{2}), and its maximum velocity (in m/s).

You should calculate the distance traveled as follows:

· calculate time to reach maximum velocity --t_max=max_v/a

· comparettot_max, iftis greater

odistance=max_v/ 2 *t_max+ (t-t_max) *max_v

· otherwise

odistance= (t*a) / 2 *t

max_v= maximum velocity,a= acceleration,d= distance traveled,t= travel time andt_max= time to reach maximum velocity

Code:float disTraveled (float t, float maxVelocity, float acceleration); void race(); int main() { printf("\n\nQUESTION - Race\n"); race(); return 0; } void race() { float T_Max1, acceleration1, t, maxVelocity, acceleration; printf("Enter the maximum velocity of vehicle 1: "); scanf("%f", &T_Max1); printf("Enter the acceleration of vehicle 1: "); scanf("%f", &acceleration1); printf("Enter the race time: "); scanf("%f", &t); printf("\n%s%11s%10s%11s\n", "Vehicle", "Max.", "Acc.", "Distance"); printf("%s%11s%10s%11s\n\n", "-------", "----", "----", "--------"); printf("%s%9.2f%10.2f%11.2f\n", "Vehicle 1", T_Max1, acceleration1, disTraveled(t, maxVelocity, acceleration)); float disTraveled (float t, float maxVelocity, float acceleration) { float distance, T_Max; T_Max = (maxVelocity / acceleration); // Time to reach maximum velocity if (t >= T_Max) { distance = (((maxVelocity / 2.0) * T_Max) + ((t - T_Max) * maxVelocity)); } else { distance = (((t * acceleration) / 2.0) * t); } return distance; }