面试题答案
一键面试#include <stdio.h>
#include <string.h>
// 定义图书结构体
typedef struct {
char title[100];
char author[50];
float price;
} Book;
// 计算平均价格的函数
float calculateAveragePrice(Book books[], int length) {
float totalPrice = 0;
for (int i = 0; i < length; i++) {
totalPrice += books[i].price;
}
if (length == 0) {
return 0;
}
return totalPrice / length;
}
int main() {
Book books[] = {
{"C Programming Language", "Brian W. Kernighan", 29.99},
{"Effective Java", "Joshua Bloch", 49.99},
{"Clean Code", "Robert C. Martin", 39.99}
};
int length = sizeof(books) / sizeof(books[0]);
float averagePrice = calculateAveragePrice(books, length);
printf("Average price of books: %.2f\n", averagePrice);
return 0;
}
代码说明
- 结构体定义:使用
typedef struct
定义了Book
结构体,包含title
(书名)、author
(作者)和price
(价格)三个成员。 - 计算平均价格函数:
calculateAveragePrice
函数遍历数组,累加每本书的价格,最后返回总价除以书的数量得到平均价格。如果数组长度为0,返回0。 - 主函数:在
main
函数中创建了一个Book
结构体数组,并调用calculateAveragePrice
函数计算平均价格,最后打印结果。
上述代码是C语言实现,其他语言实现思路类似,如C++:
#include <iostream>
#include <string>
// 定义图书结构体
struct Book {
std::string title;
std::string author;
float price;
};
// 计算平均价格的函数
float calculateAveragePrice(Book books[], int length) {
float totalPrice = 0;
for (int i = 0; i < length; i++) {
totalPrice += books[i].price;
}
if (length == 0) {
return 0;
}
return totalPrice / length;
}
int main() {
Book books[] = {
{"C Programming Language", "Brian W. Kernighan", 29.99},
{"Effective Java", "Joshua Bloch", 49.99},
{"Clean Code", "Robert C. Martin", 39.99}
};
int length = sizeof(books) / sizeof(books[0]);
float averagePrice = calculateAveragePrice(books, length);
std::cout << "Average price of books: " << averagePrice << std::endl;
return 0;
}
在C++中,使用std::string
来存储字符串,其他逻辑与C语言版本类似。
Python实现如下:
class Book:
def __init__(self, title, author, price):
self.title = title
self.author = author
self.price = price
def calculate_average_price(books):
if not books:
return 0
total_price = sum(book.price for book in books)
return total_price / len(books)
books = [
Book("C Programming Language", "Brian W. Kernighan", 29.99),
Book("Effective Java", "Joshua Bloch", 49.99),
Book("Clean Code", "Robert C. Martin", 39.99)
]
average_price = calculate_average_price(books)
print(f"Average price of books: {average_price}")
Python中通过定义类来表示图书信息,使用生成器表达式和sum
函数计算总价,进而得到平均价格。