62 lines
1.3 KiB
C
62 lines
1.3 KiB
C
#include <stdio.h>
|
|
|
|
// Struct for Car
|
|
typedef struct Car {
|
|
char model[50];
|
|
int year;
|
|
double price;
|
|
} Car;
|
|
|
|
// Print details of passed car pointer
|
|
void display_details(Car *car) {
|
|
printf("Model: %s\n", car->model);
|
|
printf("Year: %d\n", car->year);
|
|
printf("Price: $%0.02f\n", car->price);
|
|
}
|
|
|
|
|
|
// Returns a pointer to the car with the lowest price
|
|
Car *find_lowest_price(Car arr[], int len) {
|
|
int lowest_price = arr[0].price;
|
|
Car *lowest = &arr[0];
|
|
for(int i = 1; i < len; i++) {
|
|
if(arr[i].price < lowest_price) {
|
|
lowest_price = arr[i].price;
|
|
lowest = &arr[i];
|
|
}
|
|
}
|
|
return lowest;
|
|
}
|
|
|
|
// Returns double of average price of the cars
|
|
double find_average_price(Car arr[], int len) {
|
|
double average = 0;
|
|
for(int i = 0; i < len; i++) {
|
|
average += arr[i].price;
|
|
}
|
|
return average / len;
|
|
}
|
|
|
|
int main() {
|
|
// Cars to test function and struct
|
|
Car c1 = {"Honda Pilot", 2016, 20000.50};
|
|
Car c2 = {"Chevy Tahoe", 2002, 7500.25};
|
|
Car c3 = {"Lamborghini Aventador", 2015, 450000};
|
|
|
|
Car arr[] = {c1, c2, c3};
|
|
|
|
// Display all car details
|
|
for(int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++) {
|
|
display_details(&arr[i]);
|
|
}
|
|
|
|
//Print car with lowest price
|
|
printf("\nCar with the lowest price: ");
|
|
display_details(find_lowest_price(arr, 3));
|
|
|
|
//Print average price of the cars
|
|
printf("\nAverage price: $%0.02f\n", find_average_price(arr, 3));
|
|
|
|
return 0;
|
|
}
|