设有若干名职工信息 每个人的信息包括职工号 姓名 年龄要求从键盘读入n名职工信息并输出年龄在35岁以下的职工信息
时间: 2024-05-16 18:17:46 浏览: 92
以下是一个简单的 Python 代码实现:
```python
n = int(input("请输入职工人数:"))
employees = []
for i in range(n):
id = input("请输入职工号:")
name = input("请输入姓名:")
age = int(input("请输入年龄:"))
employees.append({"id": id, "name": name, "age": age})
print("\n年龄在35岁以下的职工信息:")
for employee in employees:
if employee["age"] < 35:
print("职工号:{},姓名:{},年龄:{}".format(employee["id"], employee["name"], employee["age"]))
```
以上代码实现了从键盘读入n名职工信息,并输出年龄在35岁以下的职工信息。
你可以根据自己的需要进行修改和完善。
相关问题
试题详情: 设有若干名职工信息,每个人的信息包括职工号、姓名、年龄(职工号不超过6个字符,姓名不超过10个字符),要求从键盘读入n名职工的信息,并输出年龄在35岁以下的职工信息。要求用指向结构体数组元素的指针实现。 输入提示: 输入为n+1行,其中第一行为人数,后面n行为n个职工信息 输出提示: 输出所有35岁以下的职工信息,每人一行,职工号和姓名分别占有10列的宽度,年龄占3列宽度 输入样本: 5 123 tom 45 234 mimi 23 345 lili 52 456 mary 33 567 jimi 40 输出样本: 234 mimi 23 456 mary 33
以下是使用指向结构体数组元素的指针实现的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NUM 100 // 最多职工人数
struct Employee {
char id[7]; // 职工号
char name[11]; // 姓名
int age; // 年龄
};
int main() {
int n;
struct Employee employees[MAX_NUM]; // 职工信息数组
struct Employee *p = employees; // 指针指向第一个职工信息
printf("请输入职工人数:");
scanf("%d", &n);
printf("请依次输入职工信息(职工号、姓名、年龄):\n");
// 读入职工信息
for (int i = 0; i < n; i++) {
scanf("%s%s%d", (p+i)->id, (p+i)->name, &(p+i)->age);
}
printf("年龄在35岁以下的职工信息如下:\n");
// 输出年龄在35岁以下的职工信息
for (int i = 0; i < n; i++) {
if ((p+i)->age < 35) {
printf("%-10s%-10s%3d\n", (p+i)->id, (p+i)->name, (p+i)->age);
}
}
return 0;
}
```
代码解析:
1. 定义了一个结构体 `Employee` 来表示职工信息,包括职工号、姓名、年龄。
2. 定义了一个指向结构体数组元素的指针 `p`,并初始化为指向 `employees` 数组的第一个元素。
3. 通过 `scanf` 函数读入职工信息并存储到 `employees` 数组中。
4. 遍历 `employees` 数组,输出年龄在35岁以下的职工信息。注意,这里使用了指针 `p` 来访问结构体数组元素的成员,即 `(p+i)->id`、`(p+i)->name` 和 `(p+i)->age`,其中 `i` 代表元素下标。
5. 输出格式化字符串使用了 `%10s` 和 `%3d` 分别表示占位宽度为10的字符串和占位宽度为3的整数。其中,`%-10s` 表示左对齐的字符串,可以保证职工号和姓名分别占据10个字符宽度。
设计一个结构体用于表示学生的信息,包括学号、姓名和年龄。编写一个程序,从键盘输入若干个学生的信息,存储到结构体数组中,并输出年龄最大的学生的学号和姓名。 输入: 从键盘输入一个整数 n(1<=n<=100),表示学生人数。 接下来输入 n 行,每行包含一个学生的信息,格式如下: 学号(12位) 姓名(不含空格且不超过20位) 年龄(整数) 数据之间用空格隔开。 输出: 输出年龄最大的学生的学号和姓名,用空格隔开
好的,这是一个简单的 C 语言程序,实现了你的要求:
```c
#include <stdio.h>
#include <string.h>
#define MAX_N 100
#define MAX_NAME_LEN 20
struct student {
char id[13];
char name[MAX_NAME_LEN];
int age;
};
int main() {
int n, i, max_age_index = 0;
struct student students[MAX_N];
// 读入学生信息
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%s %s %d", students[i].id, students[i].name, &students[i].age);
}
// 查找年龄最大的学生
for (i = 1; i < n; i++) {
if (students[i].age > students[max_age_index].age) {
max_age_index = i;
}
}
// 输出结果
printf("%s %s", students[max_age_index].id, students[max_age_index].name);
return 0;
}
```
这个程序中,我们定义了一个结构体 `student`,包含三个成员变量:学号 `id`,姓名 `name` 和年龄 `age`。然后我们定义了一个结构体数组 `students`,用来存储多个学生的信息。接着,我们从键盘读入学生信息,并按照题目要求,查找年龄最大的学生,并输出其学号和姓名。
注意,我们在定义结构体变量 `name` 时,使用了 `MAX_NAME_LEN` 这个宏定义,来限制姓名的长度不超过 20。同时,我们在读入学生信息时,使用了 `%s` 格式化字符串,来读入不含空格的字符串。
阅读全文