Я пытаюсь найти среднюю цену и пробег для транспортных средств в коде.Я использую указатели для запуска значений через функцию, однако выходные данные функций не верны.
#include <stdio.h>
#include <string.h>
#define SIZE 4
typedef struct {
int year;
char model[11];
} Model;
typedef struct {
float price;
} Price;
typedef struct {
int miles;
} Miles;
typedef struct {
Model year, model;
Price price;
Miles miles;
struct Car *next;
} Car;
float averagePrice(Car *ptr_car, Car *ptr_car2, Car *ptr_car3, Car* ptr_car4);
int averageMiles(Car *ptr_car, Car *ptr_car2, Car *ptr_car3, Car *ptr_car4);
int main(void) {
Car f1, im, f2, g;
int i, cnt, avgmile;
float avgprice;
f1.year.year = 56;
strcpy(f1.model.model, "Ford");
f1.price.price = 500.00;
f1.miles.miles = 23000;
im.year.year = 64;
strcpy(im.model.model, "Impala");
im.price.price = 1800.00;
im.miles.miles = 12000;
f2.year.year = 57;
strcpy(f2.model.model, "Ford");
f2.price.price = 1400.00;
f2.miles.miles = 22000;
g.year.year = 65;
strcpy(g.model.model, "Galaxy");
g.price.price = 2600.00;
g.miles.miles = 48000;
avgprice = averagePrice(&f1, &im, &f2, &g);
avgmile = averageMiles(&f1, &im, &f2, &g);
printf("The average price of the vehicle is: %d.\n", avgprice);
printf("The average miles of the vehicle is: %d.\n", avgmile);
getchar();
return 0;
}
float averagePrice(Car *ptr_car, Car *ptr_car2, Car *ptr_car3, Car *ptr_car4) {
float total;
total = ptr_car->price.price;
total =+ ptr_car2->price.price;
total =+ ptr_car3->price.price;
total =+ ptr_car4->price.price;
total = total / SIZE;
return total;
}
int averageMiles(Car *ptr_car, Car *ptr_car2, Car *ptr_car3, Car* ptr_car4) {
float total;
total = ptr_car->miles.miles;
total =+ ptr_car2->miles.miles;
total =+ ptr_car3->miles.miles;
total =+ ptr_car4->miles.miles;
total = total / SIZE;
return total;
}
Я знаю, что не могу добавить указатель напрямую вместе, поэтому я добавил их в переменную для храненияЗначение.Тем не менее, похоже, что не хранить значения.Я получаю 0 для значения avgprice и 12000 для значения avgmiles .