c++输入n个学生姓名和出生年月日,输出年龄最小的学生姓名,代码
时间: 2024-10-19 21:12:24 浏览: 26
在C++中,你可以使用`std::map`存储学生的姓名和他们的出生日期,然后通过遍历找到年龄最小的学生。这里是一个简单的示例代码:
```cpp
#include <iostream>
#include <string>
#include <map>
#include <ctime>
struct Student {
std::string name;
int birth_year;
};
int get_age(int birth_year) {
time_t now = time(0);
tm* current_time = localtime(&now);
int current_year = 1900 + current_time->tm_year; // 加上1900是因为time()函数默认从1970年开始计数
return current_year - birth_year;
}
int main() {
std::map<std::string, int> students;
int n;
std::cout << "请输入学生人数: ";
std::cin >> n;
for (int i = 0; i < n; ++i) {
std::string name;
int birth_year;
std::cout << "请输入第" << i+1 << "位学生姓名和出生年份: ";
std::cin >> name >> birth_year;
students[name] = birth_year;
}
std::string youngest_name;
int min_age = INT_MAX; // 初始化最大值
for (const auto& student : students) {
int age = get_age(student.second);
if (age < min_age) {
min_age = age;
youngest_name = student.first;
}
}
if (!youngest_name.empty()) {
std::cout << "年龄最小的学生是:" << youngest_name << ", 年龄:" << min_age << std::endl;
} else {
std::cout << "没有输入年龄数据,无法确定年龄最小的学生。\n";
}
return 0;
}
```
阅读全文