用C语言为了生活联系的方便,某班级需要建立一个同学通讯录。通讯录中包含:姓名、性别、出生日期、手机号这几项。 现需要根据通讯录统计 2000 年后(包括 2000 年)出生你的男生人数,请编程实现这个通讯并完成人数统计要求。
时间: 2024-03-14 08:47:37 浏览: 58
好的,我可以帮你解决这个问题。以下是示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NAME_LENGTH 20
#define MAX_PHONE_LENGTH 11
typedef struct student {
char name[MAX_NAME_LENGTH];
char gender;
int birth_year;
char phone[MAX_PHONE_LENGTH];
} Student;
int main() {
int n;
printf("请输入班级人数:");
scanf("%d", &n);
Student *students = (Student *)malloc(n * sizeof(Student));
// 读入学生信息
for (int i = 0; i < n; i++) {
printf("请输入第%d个同学的姓名、性别、出生年份和手机号,用空格分隔:", i + 1);
scanf("%s %c %d %s", students[i].name, &students[i].gender, &students[i].birth_year, students[i].phone);
}
// 统计出生于 2000 年及以后的男生人数
int count = 0;
for (int i = 0; i < n; i++) {
if (students[i].birth_year >= 2000 && students[i].gender == 'M') {
count++;
}
}
printf("出生于 2000 年及以后的男生人数为:%d\n", count);
free(students);
return 0;
}
```
这段代码中,我们首先定义了一个 `Student` 结构体,包含了姓名、性别、出生年份和手机号四个属性。然后通过动态内存分配,创建了一个长度为 `n` 的 `Student` 数组,用于存储班级所有同学的信息。
接下来,通过循环读入每个同学的信息,然后再通过另一个循环统计出生于 2000 年及以后的男生人数。最后输出结果即可。
需要注意的是,这段代码还没有进行输入格式的检查和异常处理,你可以自己根据需要进行添加。
阅读全文