MST
星途 面试题库

面试题:Fortran变量声明与数据类型:复杂数据结构操作

假设有一个派生数据类型,包含整型变量`id`,字符型变量`name`(长度为20),实型数组`scores`(大小为3)。要求声明一个该派生数据类型的数组,大小为10。编写一个函数,输入是这个数组和一个`id`值,函数返回对应`id`的`name`和`scores`的平均值,如果找不到对应的`id`则返回错误信息。请给出完整代码。
43.4万 热度难度
编程语言Fortran

知识考点

AI 面试

面试题答案

一键面试
#include <iostream>
#include <cstring>

// 定义派生数据类型
struct Student {
    int id;
    char name[20];
    float scores[3];
};

// 查找函数
std::string findStudent(Student students[], int size, int targetId) {
    for (int i = 0; i < size; ++i) {
        if (students[i].id == targetId) {
            float sum = 0;
            for (int j = 0; j < 3; ++j) {
                sum += students[i].scores[j];
            }
            float average = sum / 3;
            char result[100];
            std::snprintf(result, sizeof(result), "Name: %s, Average Score: %.2f", students[i].name, average);
            return result;
        }
    }
    return "ID not found";
}

int main() {
    Student students[10];
    // 假设这里对students数组进行了初始化
    int targetId = 1; // 假设要查找的id
    std::string result = findStudent(students, 10, targetId);
    std::cout << result << std::endl;
    return 0;
}