Hello,

I'm having trouble with effectively getting my code to do what my assignment says. Initially I can't debug it to get it to compile for what i have so far. Next, I'm not sure where and how i should add a linked list in my code to allocate memory after a crash has occured. Then lastly i'm not sure how to make the cars go through 1000 time steps in the simulation.

Here is the Question:

Consider a square domain partitioned into 250,000 equally spaced grid cells (500 by

500). We will randomly distribute some cars into this domain such that no more than 1

car is located in any grid cell initially. Each car has a random mass between 1-50. At

each time step of the simulation, each car randomly moves one grid cell in the x or y

direction (4 possible directions). If a car touches the edges of the domain then it

“rebounds” 180o towards the interior. If two cars land on the same grid cell, then they

have had an accident, and the smaller car is removed from the simulation.

Write a program to simulate this system. Use structures to represent the cars in the

simulation. Make your program efficient by only allocating memory for active cars, and

free memory for cars that are no longer active. Hint: use a linked list to represent the

cars.

Show the initial distribution of cars and the final distribution of surviving cars (the

number of cars at each possible mass) after 1000 time steps if the simulation starts with

500 and 2000 cars (2 cases). Make a histogram of your results using excel. The bins on

the x-axis of the histogram will be the mass of each car. The value on the y-axis will be

the number of cars in each bin.

-I would greatly appreciate any help i could get, seeing how i'm stuck and just going in circles.

Thank You in advance for trying to help!

Here is my Code:

Code:`/* ************************************************************************`

written by: Robert Stange (Feb09)

Student of Civil and Environmental Engineering

UC Davis ECI19

The purpose of this program is to predict the distribution of surviving cars.

------------Inputs--------------

*The program must generate a 250,000 equally spaced grid with 500 cars ranging in

mass from 1-50. Each car must beable to randomly move in 4 possible directions.

If there is a crash the smaller car is removed from the simulation. Then you must

allocate the memory for that crashed car and free it to the system.

-The program randomly generates the following data:

1)position

2)weight

3)directon

------------Output--------------

-The program will output the surviving cars after 1000 time steps.

*********************************************************************** */

//prototype definitions

#include<stdio.h>

#include<stdlib.h>

//structure for x,y,and weight of an array of cars

typedef struct

{

float x;

float y;

float weight;

} car[];

int location()

int main()

{

//variable definitions

int i = 0;

int X = rand() % 500;

int Y = rand() % 500;

int Weight = rand() % 50;

float car[5]={X, Y, Weight};

//generate cars

for (i=0;i<500;i++)

{

car[i]={X, Y, Weight};

printf("location of car is %d,%d and weight is %d\n",X.x, Y.y, Weight.weight);

}

return 0;

}

//-------------------------------------

//Function for the location of the cars

//-------------------------------------

int location()

{

int m[5] = rand() % 4;

int g = 5;

//loop through the different randimizations

for (i=0; i<=g; i++)

{

if(m==1)

car[i]=rand() % (X+1).X;

if(m==2)

car[i]=rand() % (X-1).X;

if(m==3)

car[i]=rand() % (Y+1).Y;

if(m==4)

car[i]=rand() % (Y-1).Y;

}

return m;

}

//--------------------------------

//Function to check for collisions

//--------------------------------

int check()

{

int ix=0;

int iy=0;

//loop checking for collisions

for(i=o; i<=500; i++)

{

for(ix=0; ix<=500; ix++)

{

for(iy=0; iy<=500; iy++)

{

if(iy=ix)

}

car[i]= 0.x

car[i]= 0.y

}

}

}

}

return 0;

}

Thanks for all you time and help!

-Robert